SSH авторизация по ключу в Linux

Авторизация с помощью электронных ключей повышает безопасность администрирования удаленной машины, особенно,  если нет возможности ограничить подключения по ip адресам. Ниже приведена небольшая инструкция по настройке связки сервер/клиент:

1. На сервере выполняем команду генерирования открытого и закрытого ключей:

ssh-keygen -t rsa (или ssh-keygen -t dsa )

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

 

2.  Файлы создадутся в директории home/имя_пользователя, или home/имя_пользователя/.ssh.  Далее необходимо перенести содержимое открытого ключа (он будет заканчиваться на .pub) в файл home/имя_пользователя/.ssh/authorized_keys. Сделать это можно вручную, или по команде

cat имя_ключа.pub >> authorized_keys

На директорию .ssh и файл authorized_keys необходимо установить права на чтение и запись только владельцу.

 

3.  Закрытый ключ копируем на клиентскую машину, в зависимости от операционной системы:

  • Linux в папку home/имя_пользователя/.ssh, после чего можно подключиться к серверу командой ssh user@host.name 
  • Windows в любое место (лучше на флешку), дописываем расширение .ppk, запускаем программу Puttygen, загружаем в нее это ключ и жмем Save Private Key. Сохраненный ключ уже можно использовать в программе Putty

 

4. Дальше нужно отменить авторизацию по логину и паролю через SSH, иначе пропадает весь смысл использования ключей:

В /etc/ssh/sshd_config (или /etc/openssh/sshd_config)  выставляем параметр

PasswordAuthentication no

Далее перезапускаем SSH командой:

service sshd restart

На этом настройку можно считать завершенной.