Главная / Памятки / FreeBSD / SSH. Авторизация через ключ

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

Если вам надоело вводить логин и пароль при подключении по SSH, либо ваше приложение не поддерживает ввод логина и пароля для SSH, а соединиться всётаки надо, то вам просто необходимо использовать авторизацию по ключам.

Для этого надо настроить на стороне клиента и сервера ключи, для клиента будет приватный, а на сервере будет храниться публичный ключ.

Настройка на стороне клиента

Создайте и/или отредактируйте файл «~/.ssh/config»:

Host example 
User username 
Hostname example.com 
Port 22 IdentityFile ~/.ssh/username_example

Где,

  • «Host example» — название хоста, которое вы будете указывать при подключении по SSH (Пример: «ssh example»);
  • «User username» — имя вашего пользователя на сервере;
  • «Hostname example.com» — имя хоста вашего сервера (в отличии от Host это действительно имя сервера, а не просто имя для соединения);
  • «Port 22» — SSH порт;
  • «IdentityFile ~/.ssh/username_example» — файл с публичным ключом.

 

Генерация ключей и передача их на сервер

Далее, сгенерируем ключи.
После чего сразу же перешлём публичный ключ на сервер, а приватный переименуем в «~/.ssh/username_example»:

ssh-keygen 
scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys 
mv ~/.ssh/id_rsa ~/.ssh/username_example 
chmod -R 600 ~/.ssh 
chmod 700 ~/ssh

Теперь должно подключаться по ключу:

ssh example

Утилита ssh-copy-id

Также есть более быстрый (меньше телодвижений) и правильный (он добавляет ключ в «~/.ssh/authorized_keys» на сервере, а не замещает как «scp») способ передавать публичный ключ на сервер, это утилита ssh-copy-id.

То есть вместо:

ssh-keygen

scp ~/.ssh/id_rsa.pub [email protected]:~/.ssh/authorized_keys

надо использовать так:

ssh-keygen

ssh-copy-id -i [email protected]

Если у вас отличный (например, 2424) от умолчательного порт (22), то можно так:

ssh-copy-id -i '-p 2424 [email protected]'

Ну вот и все (источник)

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*