Припустимо, ви хочете автоматизувати якісь завдання, використовуючи Unix / Linux, SSH і shell, або просто вам набридло вводити паролі на доступ до серверів. Розглянемо можливість автоматичного входу (login) з хоста A користувача a на хост B користувачем b по SSH без пароля.
Спочатку зайдіть на хост A як користувач a і згенеруйте пару ключів аутентифікації. Не вводьте в кінці пароль (passphrase):
> Ssh-keygen -t rsa
Generating public / private rsa key pair.
Enter file in which to save the key (/home/a/.ssh/id_rsa):
Created directory '/home/a/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/a/.ssh/id_rsa.
Your public key has been saved in /home/a/.ssh/id_rsa.pub.
The key fingerprint is:
3e: 4f: 05: 79: 3a: 9f: 96: 7c: 3b: ad: e9: 58: 37: bc: 37: e4 a @ A
Тепер використовуйте SSH, щоб створити каталог
/.ssh як користувач b на хості B (каталог може вже існувати):
> Ssh b @ B mkdir -p .ssh
b @ B's password:
Нарешті, додайте новий публічний ключ на b @ B: .ssh / authorized_keys і введіть пароль в останній раз:
> Cat .ssh / id_rsa.pub | ssh b @ B 'cat >> .ssh / authorized_keys'
b @ B's password:
Тепер ви можете входити на хост B як користувач b з хоста A без введення пароля:
> Ssh b @ B hostname
B
Залежно від версії SSH, вам, можливо, доведеться зробити додатково наступні зміни:
Додати публічний ключ як .ssh / authorized_keys2
Змінити права на каталог .ssh на 700
Змінити права на файл .ssh / authorized_keys2 на 640