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

Допустим, Вам необходимо настроить беспарольный вход по SSH, SCP или SFTP на удаленный сервер remote.org.ua под пользователем user. Если имя Вашего локального пользователя совпадает с удаленным, то user@ везде можно опустить.

Создание SSH-ключей

По умолчанию в корневой директории пользователя находится директория .ssh, если по какой то причине её нет, то создаём её командой:

$ mkdir ~/.ssh

1) Cоздаем открытый и закрытый ключ нашей локальной системы:

$ ssh-keygen -t rsa -q -N '' -f ~/.ssh/id_rsa

Подробнее о ключах можете посмотреть с помощью команды:

$ ssh-keygen --help

2) Если в системе есть программа ssh-copy-id, то настраиваем удаленную систему на то, чтобы она авторизовывала SSH по открытому ключу:

$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote.org.ua

переходим к шагу 4

3) Если ssh-copy-id нет, то можно сделать это вручную.

Вот последовательность действий:

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

$ scp ~/.ssh/id_rsa.pub  user@remote.org.ua:~

3.2) Авторизуемся на удаленном сервере:

$ ssh user@remoute.org.ua

3.3) Заносим открытый ключ нашей локальный системы в авторизованные ключи удаленной системы, устанавливаем правильные права и "убираем за собой мусор":

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

4) Проверяем, что все работает, запускаем на локальном компьютере:

$ ssh user@remoute.org.ua

Пример автоматического подключения из Windows через Putty и PuTTYgen

Для начала скачаем с официального сайта обе утилиты отсюда.

еперь утилитой PuTTYgen сгенерируем публичный и приватный ключ. Открываем утилиту и нажимаем Generate:

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

По окончании процесса генерации, утилита предоставит Вам сгенерированный приватный и публичный ключ. Публичный, который обведен красным прямоугольником, нужно занести в файл authorized_keys, который находится в папке .ssh корне Вашего аккаунта на сервере, а приватный ключ сохраняем себе на компьютер. Для этого нажимаем на кнопку Save private key. Учтите, что приватный ключ нельзя ни показывать, ни передавать, иначе смысл безопасного подключения теряется.

Сейчас скопируем публичный ключ в файл .ssh/authorized_keys находящийся на Вашем аккаунте. Для этого открываем утилиту Putty:

Вводим логин пользователя (он совпадает с именем от личного кабинета):

После ввода пароля видим, что нас вежливо приветствует система:

После этого полностью копируем публичный ключ из области, выделенной красным цветом (на слайде выше), в консоли пишем cat >> .ssh/authorized_keys << EOF, нажимаем Enter, затем вставляем публичный ключ, еще раз нажимаем Enter, пишем EOF и еще раз жмем Enter:

Отлично, ключ добавлен! Теперь проверим нашу беспарольную аутентификацию. Для этого открываем еще раз Putty, переходим во вкладку Auth затем нажимаем на Browse, выбираем наш приватный ключ, который мы сгенерировали и сохранили себе:

Теперь перемещаемся во вкладку Session и, также как ранее, вводим адрес нашего сервера, в нашем случае - это matrix.beget.com затем нажимаем Open:

Теперь вводим логин пользователя, который совпадает с логином от входа в личный кабинет, в нашем случае - denia0d3. Дальше жмем Enter:

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

Удачной работы! Если возникнут вопросы - напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел "Помощь и поддержка".

Теги:

126
70048