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

Рано или поздно каждый системный администратор сталкивается с тем, что бы подключение к серверу по SSH или SCP, а так же SFTP, устанавливалось без ввода пароля пользователя. Для этого используются ключ авторизации.

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

$ ssh-keygen -t rsa

Далее нажимаем “Enter” и отказываемся от ключевой фразы.

Второе, используя программу ssh-copy-id, настраиваем удаленную систему на авторизацию по SSH ключу:

$ ssh-copy-id -i ~/.ssh/id_rsa user@remotehost.com

Вводим пароль доступа к удаленному серверу, после чего можно завершить сеанс и проверить работу авторизации по SSH ключу:

$ ssh user@remotehost.com

Конечно, программы ssh-copy-id может и не быть. В этом случае все можно сделать в ручную:

Копируем открытый ключ на удаленный сервер:

$ scp ~/.ssh/id_rsa.pub user@remotehost.com:~

Авторизуемся на удаленном сервере. Записываем открытый ключ в авторизованные ключи удаленной системы, устанавливаем правильные права и «моем за собой посуду»:

  1. remotehost.com $ [ -d ~/.ssh ] || (mkdir ~/.ssh; chmod 711 ~/.ssh)  //создаем директорию и даём права
  2. remotehost.com $ cat ~/id_rsa.pub >> ~/.ssh/authorized_keys       //добавляем открытый ключ
  3. remotehost.com $ chmod 600 ~/.ssh/authorized_keys                   //устанавливаем права
  4. remotehost.com $  remote$ rm ~/id_rsa.pub                                 //удаляем не нужное

Далее просто завершаем сеанс и пробуем подключиться по SSH ключу:

                $ ssh user@remotehost.com

Категории:

Комментарии

ssh-copy-id user@server.com вполне себе хорошо работает по умолчанию без всяких параметров.