Блог

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

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

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

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

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

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

Это делается с вомощью утилиты 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 
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 

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

$ scp ~/.ssh/id_rsa.pub :/home/username/.ssh/authorized_keys_user

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

$ ssh 

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

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

Join the conversation
0 Comments