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

Наш не заменимый SSH (англ. Secure Shell — «безопасная оболочка») предлагаем нам не только авторизацию по паролю , но и авторизацию по ключам. Что ко нечто является более безопасным способом авторизации.

Есть два способа генерации ключей. На стороне сервера или на стороне клиента. То есть вы генерируете ключи на сервере и оправляете клиенту приватный ключ или вы делаете все наоборот и отправляете серверу публичный ключ.

Начнем с  первого способа, с генерации ключей на сервере:

Первым делом зайдем в файл настройки и проверим его.

nano /etc/ssh/sshd_config

PubkeyAuthentication yes         #авторизация по публичному ключу.
AuthorizedKeysFile %h/.ssh/authorized_keys     #путь к ключу.

Если этих строчек нету, то добавим их и сохраним настройки.С генерируем ключи RSA длинной 2048 бит. Или может использовать другой алгоритм DSA.

ssh-keygen -t rsa -b 2048

Enter file in which to save the key:  Здесь спрашивается путь куда установить ключи, можно оставить по умолчанию.

Enter passphrase (empty for no passphrase): Это пароль для доступа к ключу, можно оставить пустым.

 

ssh-keygen -t dsa -b 2048

В папке /home/user/.ssh появиться два ключа:

id_rsa   приватный ключ.

id_rsa.pub публичный ключ.

Приватный ключ надо скачать с сервера, а публичный переименовать в authorized_keys.

cat id_rsa.pub > authorized_keys

Теперь перейдем к нашему незаменимому Putty. К сожалению он не понимает  данный формат ключа и нам надо его конвертировать.

Качаем утилиту из набора для генерации ключей : puttygen

Загружаем наш скаченный ключ.

Теперь сохраняем приватный ключ в формате putty. Теперь подключаемся через Putty с использованием ключа и вводим login пользователя.

В консоли вы увидите Authenticating with public key «imported-openssh-key» .

Если у вас не будет подключаться и в лог файле  /var/log/auth.log написано :  Authentication refused: bad ownership or modes for directory  то у вас проблемы с правами на файл и директории.

Права на папку .ssh должны быть 700.

На файлы в папке 600.

На папку /home 755.

Генерация ключей в Putty.

Открываем  puttygen, выбираем алгоритм и длину ключа. Можем добавить комментарий и пароль на приватный ключ.

Нажимаем Generate и двигаем хаотично мышкой. Сохраняем приватный ключ,не закрываем программу.

Заходим на сервер, переходим в папку /home/user/.ssh( /root/.ssh) , если ее нету то создаем.

Создаем файл authorized_keys и копируем в него содержимое публично ключа из программы. Сохраняем, выставляем права на файл и папку. Все .

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

Основные настройки SSH описаны в этой статье.

Denian/Ubuntu. На других Linux дистрибутивах  установка может отличаться