вторник, 13 мая 2014 г.

OpenSSH : доступ по ключам

Для администрирования Unix систем в большинстве случаев используется ssh и каждый раз необходимо вводить пароль. Это затрудняет выполнение сценариев и отвлекает администратора.
По этому предлагаю отказаться от постоянного запроса паролей и организовать доступ к удаленным хостам по ключам. Для этого необходимо сгенерировать открытый и открытый ключи на стороне клиента, поместить открытый ключ на сервер.



На стороне клиента генерируем ключ типа DSA:
    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
    cd ~/.ssh
    ssh-keygen -t dsa
    Enter passphrase (empty for no passphrase): …
    Enter same passphrase again: …
    chmod go-rwx ~/.ssh/*

Оставляем passphrase пустым (жмем Enter, это менее секюрно, но проще в реализации)

Переносим открытый ключ на сервер и на стороне сервера выполняем:
    mkdir -p ~/.ssh # Создать директорию, если ее нет
    chmod 700 ~/.ssh
    cat id_dsa.pub >> ~/.ssh/authorized_keys  # Добавление к файлу, если он уже есть
    chmod 600 ~/.ssh/authorized_keys

На сервере необходимо проверить файл  /etc/ssh/sshd_config на наличие строк:
PubkeyAuthentication yes
AuthorizedKeysFile    /home/user/.ssh/authorized_keys

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

ssh username@remote_host
The authenticity of host '10.10.10.10 (10.21.10.10)' can't be established.RSA key fingerprint is 55:77:dd:ff:fd:58:fc:16:bc:28:6d:8c:44:55:35:22.Are you sure you want to continue connecting (yes/no)?

 "Ускоряем" SSH

Для ускорения соединения по ssh рекомендую отключить некоторые протоколы авториации:

на стороне клиента файл /etc/ssh/ssh_config:

GSSAPIAuthentication no
GSSAPIDelegateCredentials no
# включаем сжатие трафика
Compression yesCompressionLevel 9

На сервере файл /etc/ssh/sshd_config:


Protocol 2
# слушаем только один IP 
ListenAddress 10.10.10.10 
UseDNS no
GSSAPIAuthentication no
KerberosAuthentication no
KerberosOrLocalPasswd no
KerberosTicketCleanup no     
# не выводим содержимое файла /etc/motd, когда пользователь входит на сервер.
PrintMotd no
# не показывать баннер, у меня заработало только когда я откомментировал строку, иначе
# возникала пауза при соединении
#Banner none 
# используем сжатие трафика
Compression yes
 
Если статья была вам полезна - кликните на баннер или кнопку Donate :)
Яндекс.Метрика

Популярные сообщения