SSH авторизація за ключами у FreeBSD - IT записки на згадку

Отже, на host1 заставившись під user1 необхідно згенерувати пару приватний / публічний ключів. Використовувати будемо алгоритм RSA, при цьому можна задати пароль ключа, але тоді його треба вводити при кожному з'єднанні. У цьому випадку генеруємо без пароля: %/usr/bin/ssh-keygen -t rsa Generating public/private rsa key pair. Введіть файл в якому виберіть файл (/home/user1/.ssh/id_rsa): Created directory '/home/user1/.ssh'. Enter passphrase (empty for no passphrase): Enter самий passphrase again: Все ваше ім'я має бути збережене в /home/user1/.ssh/id_rsa. Ваш український key has been saved in /home/user1/.ssh/id_rsa.pub. The key fingerprint is: e3:b9:be:3f:b8:ae:84:3a:c4:bb:60:92:10:0c:f4:3a user1@host1 The key's randomart image is: +--[RSA 2048]----+ o. o. .. . .. .ES . . . o = o. . o. =. . . o+. .+*+.. +-----------------+ %

Публічний ключ збережено в /home/user1/.ssh/id_rsa.pub Приватний відповідно до /home/user1/.ssh/id_rsa

Приватний ключ не слід зберігати на цьому сервері, його треба перенести на host2, що буде зроблено пізніше. Публічний ключ треба скопіювати у файл authorized_keys в директорії .ssh %cd

/.ssh/ %cat id_rsa.pub >> authorized_keys

всі перераховані вище дії треба повторити на другому сервері host2 під користувачем user2.

І на завершення налаштування спочатку на host1 скопіюємо приватний ключ id_rsa на сервер host2 за допомогою утиліти scp: scp id_rsa user2@host2:

Тепер скопіюємо на host1 згенерований на host2 приватний ключ: scp user2@host2:/home/user2/.ssh/id_rsa ./id_rsa.host2

Тепер на обох серверах можна видалити згенеровані приватні тапублічні ключі rm id_rsa rm id_rsa.pub

Таким чином, на кожному з серверів є приватний ключ іншого.

За умовчанням ssh бере приватний ключ із файлу id_rsa (для RSA звичайно ж). Але, якщо у Вас кілька приватних ключів, то яку саме використовувати треба вказати опцією -i ssh -i id_rsa.host2 host2 Якщо ж передбачається з'єднання тільки між host1 і host2, то на обох серверах треба перейменувати файли приватних ключів на id_rsa

Однак деякі програми, наприклад unison, не дозволяють додати опцію -i (або якусь іншу опцію) у своєму синтаксисі, а коннектитися треба як і раніше до кількох серверів. У такому випадку потрібно створити файл .ssh/config і в ньому вказати відповідність сервера - файл приватного ключа: