Для того, щоб ssh-сервер кожного разу не запитував пароль користувача, необхідно налаштувати автентифікацію за допомогою відкритого ключа. Наприклад, вам необхідно входити на сервер remote.host під користувачем user.
Примітка: якщо ім’я локального користувача співпадає з ім’ям віддаленого, то user@ можна не вводити
1. Спочатку необхідно створити пару ключів (відкритий та закритий) для локальної системи:
$ ssh-keygen -t rsa -b 2048
ключ -b вказує на довжину ключа в бітах, типове значення 1024 біт
2. Після створення ключів необхідно передати відкритий ключ до віддаленого серверу:
$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@remote.host
необхідно буде ввести пароль користувача user на віддаленому сервері
3. Підключаємося до віддаленого серверу, не використовуючи пароль користувача:
$ ssh user@remote.host
Безпарольний вхід для root
Для надання можливості безпарольного входу для root-а, необхідно перевірити на віддаленій системі налаштування ssh-серверу. На віддаленому сервері відкрийте файл налаштувань ssh-серверу та знайдіть рядок:
PermitRootLogin
Цей параметр може мати три значення: yes – дозволити вхід користувачу root, no – заборонити вхід користувачу root, without-password – дозволити вхід лише за допомогою сертифікатів.
1. Підготовка віддаленого ssh-серверу, для отримання ключів за допомогою парольного ssh-доступу:
Встановлюємо значення:
PermitRootLogin yes
Перезавантажуємо ssh-сервер на віддаленій системі:
# /etc/init.d/sshd restart
2. Передаємо відкритий ключ до віддаленого серверу:
# ssh-copy-id -i ~/.ssh/id_rsa.pub root@remote.host
необхідно буде ввести пароль root-а віддаленої системи.
3. Встановлюємо значення:
PermitRootLogin without-password
та знову перезавантажуємо ssh-сервер:
# /etc/init.d/sshd restart
Тепер до віддаленої систему буде можливий доступ за допомогою ssh лише при наявності ключа. Якщо необхідно лишити можливість доступу з правами root і за допомогою паролю, то 3-й пунк виконувати не потрібно.





