Главная >> Инструкции >> Настройка SSH в Debian

Настройка SSH в Debian

Технология SSH или Secure Shell позволяет пользователям подключаться к компьютеру с Linux или серверу удалённо и выполнять на нём команды, так как бы они вводились с клавиатуры непосредственно на нём. Вывод команд тоже передаётся в реальном времени в текстовом режиме, от чего складывается впечатление, что вы работаете непосредственно на той машине, к которой подключены.

В этой небольшой статье мы рассмотрим как настроить SSH в Debian 10 для подключения к системе извне, а также основные параметры на которые стоит обратить внимание.


Содержание статьи

Установка SSH в Debian

Если во время установки Debian вы выбрали установку SSH сервера, то в готовой системе он будет уже установлен и запущен. Для проверки его состояния выполните:

sudo systemctl status sshd

Если отображается надпись active, running, значит всё хорошо. В противном случае надо установить SSH сервер. Для этого используйте такую команду:

sudo apt install openssh-server ssh

Затем для запуска сервиса выполните:

sudo systemctl start sshd

Если на вашем сервере используется фаервол UFW, то вам надо разрешить удалённое подключение к порту 22:

sudo ufw allow ssh

Установка ssh в Debian завершена. Теперь вы можете попытаться подключится к SSH серверу локально:

ssh root@localhost

При первом подключении надо будет подтвердить добавление ключа сервера в файл ~/.ssh/known_hosts. Затем перед вами откроется приглашение ввода в консоли SSH.

Настройка сервера SSH

Все настройки сервера SSH находятся в файле /etc/ssh/sshd_config. Перед тем, как его редактировать лучше сделать резервную копию на всякий случай:

sudo cp /etc/ssh/sshd_config{,_back}

1. Смена порта

Одна из самых частых настроек, которую надо выполнять на большинстве серверов, это смена порта. Если у сервера есть публичный IP адрес, то его сканируют множество ботов, и как только они находят открытый порт 22, то сразу начинают пытаться перебрать пароль. Откройте конфигурационный файл и найдите строчку Port, расскоментируйте её, если нужно:

vi /etc/ssh/sshd_config

Затем пропишите нужное значение порта, например 2222:

Port 2222

Для того, чтобы изменения вступили в силу надо перезагрузить SSH сервер:

sudo systemctl restart sshd

Теперь, чтобы подключится к этому серверу надо будет явно указать порт с помощью опции -p:

ssh root@localhost -p 2222

2. Отключение входа суперпользователя

Чаще всего боты используют для перебора пароля логин суперпользователя. Авторизацию для этого пользователя можно отключить. Перед тем, как это делать убедитесь, что у вас есть в системе ещё как минимум один пользователь от имени которого вы сможете авторизоваться. Затем найдите строку PermitRootLogin и замените её значение на no:

Чтобы разрешить подключение ssh Debian для пользователя root, замените значение этого параметра на yes.

3. Авторизация по ключу

Следующий шаг по обеспечению безопасности вашего сервера - отключить вообще авторизацию по паролю, а использовать только авторизацию по ключу. Подробнее про авторизацию по ключу рассказано здесь. В конфигурационном файле sshd вам надо изменить только несколько строчек:

Сначала найдите строку PubkeyAuthentication и замените её значение на yes:

Перед тем как отключать возможность входа по паролю убедитесь, что вы добавили ключ для авторизации, как это описано в статье выше. Затем замените значения параметров ChallengeResponseAuthentication, PasswordAuthentication, UsePAM на no.

Настройка клиента

Для каждого пользователя можно сделать отдельные настройки клиента SSH. Для этого используется файл .ssh/config. Синтаксис файла такой:

Хост имя_хоста
  Параметр значение

Таких секций может быть сколько угодно. Сначала надо указать хост, для которого будут применяться настройки, затем параметры для него. Можно создать секцию, которая будет работать для любого хоста, для этого используйте *. Например, чаще всего для подключения по SSH используется пользователь root. Давайте использовать его по умолчанию для всех подключений:

Host *
  User root

Если для какого либо хоста вы меняли порт, что чтобы не вводить его каждый раз, можно настроить порт по умолчанию в этом файле, например:

Host localhost
Port 2222

Теперь при подключении можно просто набрать:

ssh localhost

Выводы

В этой статье мы рассмотрели как установить ssh, а также как выполняется настройка SSH в Debian. Теперь вы знаете основные моменты, которые надо сделать чтобы комфортно пользоваться этим сервисом. А какие настройки SSH делаете вы? Напишите в комментариях!

Creative Commons License
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

11 комментариев к “Настройка SSH в Debian”

    • 1) nano /etc/ssh/sshd_config
      2) port 2222
      PermitRootLogin yes
      3)nano /etc/network/interfaces
      4) post-up iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 22 -j DNAT --to-destination сервер :2222
      5) post-up iptables -A FORWARD -s () -p tcp --dport 2222 -j DROP
      Ssh root@10.1.0.2 -p 2222

      Ответить
  1. Get-WindowsCapability -Online | ? Name -like 'OpenSSH.Ser*'
    namo : openssh.serever***0.0.1.0
    state: installed

    Set-Service -Name sshd -StartupType 'Automatic'
    Start-Service sshd
    Для корректной работы «SSH-сервера», нужно добавить разрешающие правила в Windows Defender Firewall
    Авторизуемся под учетными данными нашей виртуальный машины и переходим по пути «Control Panel» -> «System and Security» -> «Windows Defender Firewall»
    Открываем параметр «Windows Defender Firewall» и кликаем по пункту «Advanced Settings»

    Выбираем пункт «Inbound Rules» и создаем новое правило при помощи кнопки «New Rule»
    Выбираем тип правила «Port»
    Указываем протокол «TCP» и порт «2222»
    Разрешаем подключение к выбранному порту «Allow the connection»
    Выбираем тип сетей, где будет доступен протокол
    Называем правило «SSH» и нажимаем кнопку «Finish» для завершения создания правила
    Открываем конфигурацию «SSH-сервера» для редактирования
    изменяем port 2222

    открываем
    start-process notepad C:\Programdata\ssh\sshd_config

    permitRootLogin yes
    PasswordAuthentication yes
    permitEmptyPassword no

    restart-service sshd

    открываем hq-r
    iptables -t nat -A PREROUTING --dst 1.1.1.100 -p tcp --dport 22 -j DNAT --to-destination 192.168.0.60:2222

    ip6tables -t nat -A PREROUTING --dst 1110:a::100 -p tcp --dport 22 -j DNAT --to-destination 192:168:d::6:2222

    dpkg-reconfigure iptables-persistent
    [ Виртуальная машина HQ-SRV ]
    Авторизуемся под учетными данными нашей виртуальный машины и переходим по пути «Control Panel» -> «System and Security» -> «Windows Defender Firewall»
    Открываем параметр «Windows Defender Firewall» и кликаем по пункту «Advanced Settings»
    Выбираем пункт «Inbound Rules» и создаем новое правило при помощи кнопки «New Rule»
    Выбираем тип правила «Custom»
    Выбираем тип «All Programs»
    Выбираем тип протокола «TCP» и указываем локальный порт «2222»
    Указываем IP-адреса, которые будут заблокированы к SSH-сервису
    Запрещаем подключение к выбранному порту «Block the connection
    Называем правило «BlockCLI-SSH» и нажимаем кнопку «Finish» для завершения создания правила

    Ответить
  2. Устанавливается ssh:
    apt install -y ssh
    Далее добавляется в автозагрузку:
    systemctl enable ssh
    Настройки SSH
    Все настройки хранятся в файле sshd_config в директории /etc/ssh
    Файл открывается текстовым реактором:
    nano /etc/ssh/sshd_config
    В файле ищутсятся параметры:
    Port со значением 22
    PermitRootLogin со значением prohibit-password
    AddressFamily со значением any
    Port выставляется 2222
    значение prohibit-password меняется на yes и снимается знак коментария "#"
    AddressFamily выставляется inet (чтобы был доступ только по ipv4)
    Далее перезапуск ssh:
    systemctl restart ssh
    При перезагрузке не должно возникнуть ошибок.
    Можно проверить, работает ли ssh локально:
    ssh пользователь@адрес узла -p 2222
    На вопос "Are you sure you want to continue connecting?" дается положительный ответ (вводится yes).
    Появляется поле для ввода пароля. Поскольку пользователем был указан root при подключении, пароль будет от него (P@ssw0rd). При вводе пароля символы не отображаются, но вводятся.
    После этих действий подключение будет выполнено.
    При вводе "exit" соединение должно закрываться с таким сообщением.
    Далее выполняется условие с переадресацией порта SSH с помощью файервола.

    Ответить
  3. nano /etc/hosts.deny
    В файл дописывается: sshd:ip-адрес блокируемого устройства
    Сохранить файл (CTRL+S), выйти (CTRL+X)
    Далее перезапуск ssh:
    systemctl restart ssh

    Ответить
  4. apt install -y ssh
    systemctl enable ssh
    nano /etc/ssh/sshd_config
    Port со значением 22
    PermitRootLogin со значением prohibit-password
    AddressFamily со значением any
    Port выставляется 2222
    значение prohibit-password меняется на yes и снимается знак коментария "#"
    AddressFamily выставляется inet (чтобы был доступ только по ipv4)

    systemctl restart ssh

    Ответить
  5. 1) nano /etc/ssh/sshd_config
    2) port 2222
        PermitRootLogin yes
    3)nano /etc/network/interfaces
    4) post-up iptables -t nat -A PREROUTING -i enp0s3 -p tcp  --dport 22 -j DNAT --to-destination сервер :2222
    5) post-up iptables -A FORWARD -s  () -p tcp --dport 2222 -j DROP
    Ssh root@10.1.0.2 -p 2222

    Ответить

Оставьте комментарий