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

Материал из sysadm
Перейти к навигации Перейти к поиску

Файлы конфигурации

  • Общая конфигурация /etc/ssh/ssh_config
  • Конфигурация пользователя ~/.ssh/config

Синтаксис конфигурации и значения по умолчанию описаны в руководстве man ssh_config

Возможные ошибки, при подключении к устаревшим устройствам

  • no matching key exchange method found
  • no matching cipher found

По умолчанию, старые алгоритмы могут быть исключены из списка разрешенных. Чтобы подключаться по SSH используя старые алгоритмы, необходимо в конфигурациию добавить хост и нужные алгоритмы для этого хоста. При определении хоста можно использовать стандартные символы подстановки '*', '?', также можно использовать отрицание '!'. Если нужно указать несколько масок, то их можно разделять пробелом.

host 1.1.1.1
kexalgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1
ciphers +aes256-cbc

host 192.168.*.1 router-*.domain.ru
kexalgorithms +diffie-hellman-group1-sha1
ciphers +aes256-cbc

host 10.1.1.20? 10.1.1.21? sw-*.domain.ru
kexalgorithms +diffie-hellman-group14-sha1

host !sw-*.domain.ru *
kexalgorithms -diffie-hellman-group14-sha1
kexalgorithms -diffie-hellman-group1-sha1

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

kexalgorithms diffie-hellman-group1-sha1,...,diffie-hellman-group14-sha1

Если алгоритм добавляется в текущий список, то каждый алгоритм необходимо добавлять отдельной строкой

kexalgorithms +diffie-hellman-group1-sha1
kexalgorithms +diffie-hellman-group14-sha1


Проверка допустимого списка алогоритмов

ssh -Q cipher
ssh -Q kex

Удаление хоста из known_hosts

ssh-keygen -R <host>

Настройка аутентификации пользователя по сертификату


# генерация ключа текущего пользователя в профиле клиентского хоста
ssh-keygen -t rsa -b 4096 -P '' -f ~/.ssh/id_rsa

# копирование публичного ключа текущего пользователя на хост сервера
# по умолчанию копируется ~/.ssh/id_rsa.pub
ssh-copy-id host

Проблемы

Проблема:

При входе выдается ошибка

System is booting up. See pam_nologin(8)

Причина:

При загрузке сервера система временно блокирует вход всем пользователям кроме root-а. Для этого временно создается файл, который после полной загрузки должен удалиться

cat /var/run/nologin
---------------------------------
System is booting up. See pam_nologin(8)
---------------------------------

При выполнении login, если данный файл существует, то модуль pam_nologin выводит на консоль содержимое этого файла и блокирует вход всем кроме root. Если система при загрузке по какой то причине не смогла удалить этот файл, то блокировка сохраняется постоянно.

Решение:

# войти под root-ом и удалить этот файл
rm -f /var/run/nologin