Вход по SSH без пароля

 

SSH — сетевой протокол сеансового уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов). 

 

SSH позволяет безопасно передавать в незащищенной среде практически любой другой сетевой протокол. 

Очень часто для управления нужно заходить на определённый компьютер (server) и при этом он запрашывает пароль. Но если нам нужно заходить все время, то надоедат все вводить одно и тоже. А если у нас много серверов и на каждом свой пароль?

Протокол ssh разрешает входить на уделённую машыну без ввода пароля (это очень полезно, например, при резервном копировании, публикации файлов и т.п.).

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

1. Сначала на пользовательском компьютере (client) для конкретного пользователя (user) создается пара ключей  public и private. 

Это делается с вомощью утилиты ssh-keygen

  

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):                # Путь где будет сохранен наш ключ <Enter>
Created directory '/home/user/.ssh'.                                                                
Enter passphrase (empty for no passphrase):                                               # Пароль для защиты ключа, если пусто - без пароля
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
63:4b:1c:ea:30:f3:d5:c8:3c:77:73:ea:bb:9c:6f:64 user@client
The key's randomart image is:
+--[ RSA 2048]----+
|        .                   |
|       = +                |
|    + . S o o            |
|     * + = . +E         |
|      o .   .o             |
|           o               |
|        *=.               |
+-----------------+

Для генерации ключа мы использовали криптографический алгоритм RSA

В домашней директории в поддиректории .ssh появятся два ключа: id_rsa и id_rsa.pub

2. Дальше нам нужно скопировать наш открытый ключ (id_rsa.pub) на сервер, для этого мы делаем следующую команду

$  ssh-copy-id username@my-server.com
 

 Или же просто скопировать наш файл с публичным ключём на тот же сервер следующим образом 

$ scp ~/.ssh/id_rsa.pub username@my-server.com:/home/username/.ssh/authorized_keys_user

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

$ ssh username@my-server.com

Но бывает и несколько нестандартная ситуация, когда на сервере изменен порт для входа. Тогда нужно использовать ключ -р XXXX

где ХХХХ  - порт входа на сервер.

Тэги:
security, ssh, без, открытый ключ, пароль