Настройка личного сертификата 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
Пароль ставить на сертификат тоже не нужно
Настройка 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-copy-id не работает (запрашивает рут пароль, а у root нет пароля), то нужно вручную скопировать ~/.ssh/id_rsa.pub на my_host в конец файла ~/.ssh/authorized_keys отдельной строкой.
Теперь вы можете заходить на этот сервер, через ssh, по команде, введя свой пароль от сертификата:
ssh my_host