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

Генерация приватного SSH сертификата с защитой паролем

Проверьте, существуют ли у вас сертификаты коммандой ls -la ~/.ssh/ .

Если в списке есть файлы id_rsa и id_rsa.pub , то инструкции по генерации делать не нужно.

Генерируйте, только если нет файлов.

На случай, если есть уже файлы, то можно сделать бэкап

_x000D_export SSH_BACKUP_FOLDER="backup-`date +%Y%m%d`"_x000D_mkdir -p ~/.ssh/$SSH_BACKUP_FOLDER_x000D_cp ~/.ssh/id_rsa ~/.ssh/$SSH_BACKUP_FOLDER_x000D_cp ~/.ssh/id_rsa.pub ~/.ssh/$SSH_BACKUP_FOLDER/id_rsa.pub

Сделайте ssh-keygen

_x000D_Generating public/private rsa key pair._x000D_Enter file in which to save the key (/home/user/.ssh/id_rsa):

Нажмите просто `Enter`

Если спросит, перезаписать сертификат, значит сертификат уже есть и генерировать его не нужно.

_x000D_/home/user/.ssh/id_rsa already exists._x000D_Overwrite (y/n)? y

Пароль ставить на сертификат тоже не нужно

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

Создайте файл nano ~/.ssh/config со следующим содержимым:

_x000D_Host *_x000D_ Protocol 2_x000D_ KeepAlive yes_x000D_ TCPKeepAlive yes_x000D_ ServerAliveInterval 5_x000D_ ServerAliveCountMax 100_x000D_ Compression no_x000D_ CompressionLevel 9_x000D_ #ForwardX11 yes_x000D_ UseRoaming no_x000D_ _x000D_Host my_host_x000D_ Hostname 127.0.0.1_x000D_ User my_username_x000D_ Port 22 

Вместо my_host, my_username и 127.0.0.1 укажите реальные данные. Таких хостов вы можете создать несколько.

Скопируйте публичный ключ на удаленный сервер:

_x000D_ssh-copy-id my_host

Введите пароль от сервера ssh, к которому вы подключаетесь.

Если ssh-copy-id не работает (запрашивает рут пароль, а у root нет пароля), то нужно вручную скопировать ~/.ssh/id_rsa.pub на my_host в конец файла ~/.ssh/authorized_keys отдельной строкой.

Теперь вы можете заходить на этот сервер, через ssh, по команде, введя свой пароль от сертификата:

_x000D_ssh my_host