Настройка личного сертификата SSH

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

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

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

export SSH_BACKUP_FOLDER="backup-`date +%Y%m%d`"
mkdir -p ~/.ssh/$SSH_BACKUP_FOLDER
cp  ~/.ssh/id_rsa ~/.ssh/$SSH_BACKUP_FOLDER
cp  ~/.ssh/id_rsa.pub ~/.ssh/$SSH_BACKUP_FOLDER/id_rsa.pub

Сделайте ssh-keygen

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

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

Если спросит, перезаписать сертификат? То сертификат уже есть. Если он вам нужен, то сделайте бэкап, как было описано выше. Если не нужен, то перезатирайте.

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

Введите свой пароль от всех дверей сертификата:

Enter passphrase (empty for no passphrase):

Повторите ввод пароля.

Enter same passphrase again:

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

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

Host *
    Protocol 2
    KeepAlive yes
    TCPKeepAlive yes
    ServerAliveInterval 5
    ServerAliveCountMax 100
    Compression no
    CompressionLevel 9
    #ForwardX11 yes
    UseRoaming no
    
Host my_host
    Hostname 127.0.0.1
    User my_username
    Port 22   

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

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

ssh-copy-id my_host

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

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

ssh my_host