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

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

Достаточно настроить ssh сервер на авторизацию по ключу. Эта заметка поможет Вам настроить авторизацию на сервере SSH по ключу. В моем случае я использую Ubuntu.

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

Для начала, произведем начальную настройку ssh сервера для авторизации по ключу. Откроем на редактирование файл /etc/ssh/sshd_config

Тут нас интересуют следующие строки, их всего три (Должны быть раскомментированы, и иметь указанные значения):

Перезапустим сервер ssh:

Итак, привели строки файла конфигурации ssh к требуемому виду.

содержание

Генерируем RSA ключ

Далее необходимо будет сгенерировать ключи для авторизации. Дальнейшие действия производятся на самом ssh сервере (Не на компьютере на котором вы будете работать при помощи ssh клиента, а именно там где установили open-ssh):

Вы можете вместо RSA использовать DSA. В отличии от RSA, DSA используется только для цифровой подписи, и не используется для шифрования.

Далее в ответ мы получим следующие строки:

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

Тут и далее, будем считать что в данном примере я ввел leodev.ru-rsa

Теперь система попросит ввести пароль для сертификата, я его не ввожу.

Сертификаты сгенерированы:

Теперь в папке в которой вы находились, имеются два ключа:

Один из них приватный: leodev.ru-rsa, другой публичный: leodev.ru-rsa.pub.

Теперь Вам необходимо установить на Ваш сервер сгенерированный ключ. (Да, мы находимся все еще на сервере где установлен Spen-SSH). По мимо установки ключа, мы сразу выставим права на хранилище ключей.
Выполним следующие команды:

Подключение к серверу

Linux

Теперь перейдем на компьютер, который должен быть авторизирован на ssh сервере по ключу. (Теперь мы работаем на Вашем локальном компьютере.)
Заберем ключ к себе на компьютер следующей командой (Я предполагаю, что Вы выполняли предыдущие пункты в домашнем каталоге пользователя на сервере):

После того как ключ получен, загрузим его в наше локальное хранилище:

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

В результате чего, пароль запрашиваться не будет.

Windows

Копируем приватный ключ сгенерированный ранее (leodev.ru-rsa) на клиента с которого хотим подключаться к серверу, открываем его с помощью утилиты PUTTYGEN и сохраняем PRIVATE_KEY в моем случае в дирректорию:

Windows C:\Users\LEO\.ssh

И в настройках PuTTY указываем путь к нашему ключу, не забываем сохранить настройку в конкретной сессии нажав кнопку SAVE.

Далее применив статью ниже вы можете настроить доступ к Вашему серверу в один клик по ярлыку

Putty — автоматическое подключение сохраненной сессии

Отключить авторизацию SSH по паролю

Если Вам удалось подключится к серверу SSH посредством ключа, то наверное не плохим решением будет полное отключение авторизации по паролю, хотя я предпочитаю оставить запасной вход обычно. Для этого на сервере необходимо открыть файл /etc/ssh/sshd_config и изменить следующую строку:

на вот такую:

И не забудьте перезапустить сервер Open-SSH

На этом все. Можете «слить» созданные вами ключи на флешку и использовать их для авторизации по ssh без ввода пароля.

В статье использовались материалы http://melfis.ru

Подписаться
Уведомлять о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

5 комментариев
старым
новым колличеству голосов
Межтекстовые Отзывы
Посмотреть все комментарии
Alex
Alex
14.12.2017 18:58

Статья отличная. Код оформлен ужасно, не могу скопировать его частично, постоянно вываливается панелька вверху.

Andrey
Andrey
04.09.2020 13:23

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

Jake
Jake
23.03.2022 21:32

Спасибо огромное. я себе сделал на основе статьи более детальные пометки.
например, sudo restart ssh у меня не работает. Выполнял sudo service ssh restart
Использовал ubuntu 20.04

5
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x