Когда настраиваешь сервер установленный на виртуальной машине (для теста) или на реальном железе приходится много раз перезагружаться и вводить вручную пароли. Если пароль отличается от такого как — 12345, это бывает утомительно. Имеет смысл настроить без парольный вход на сервер по SSH.
В простейшем случае это настраивается следующим образом:
1. Исходные данные.
В качестве хост машины выступает Linux Mint 19, на который установлен VirtualBox 5.2.18. Гостевая машина — сервер на Debian 9.
Для простоты в виртуальной машине, в настройках сети, установлен Тип подключения «Сетевой мост».
Запускаем нашу виртуальную машину. Входим под root и смотрим наш ip адрес:
# ip a
Адрес нашей машины 192.168.1.40
Задача — необходимо войти с хостовой машины A (Linux Mint 19) на гостевую машину B (Debian 9) без ввода пароля используя SSH.
Приступим к настройки входа по ssh без использования пароля.
2. Сгенерируем пару ключей на хостовой машине A (Linux Mint 19).
Вводим команду в терминале:
$ ssh-keygen -t rsa
Вывод команды:
- Generating public/private rsa key pair. — #Создание пары открытых и закрытых ключей RSA.
- Enter file in which to save the key (/home/user/.ssh/id_rsa): — #Введите файл для сохранения ключа. (оставляем по умолчанию).
- Enter passphrase (empty for no passphrase): — #Введите парольную фразу (жмем Enter на запрос «фраза-пароль»).
- Enter same passphrase again: — #Введите ту же парольную фразу еще раз. (жмем Enter).
- Your identification has been saved in home/user/.ssh/id_rsa. — #Ваши ключи были сохранены в /home/user/.ssh/id_rsa.
- Your public key has been saved in /home/user/.ssh/id_rsa.pub. — #Ваш открытый ключ был сохранен в /home/user/.ssh/id_rsa.pub.
-
The key fingerprint is:
8c:2a:ed:82:98:6d:12:0a:3a:ba:b2:1c:c0:25:be:5b — #Ключевой отпечаток.
3. Нам потребуется пользователь с доступом к целевой машине по ssh (username на гостевой машине B), чтобы создать в домашней директории пользователя на машине B папку «.ssh». Можно сделать это удаленно используя команду:
$ ssh serg@192.168.1.40 mkdir -p .ssh
где «serg» — пользователь на гостевой машине B, а «192.168.1.40» — это IP адрес гостевой машины B.
Отвечаем yes на вопрос о продолжении подключения.
4. Зальем новый «ПУБЛИЧНЫЙ» ключ в файл .ssh/authorized_keys на гостевую машину B (Debian 9).
$ cat ~/.ssh/id_rsa.pub | ssh serg@192.168.1.40 ‘cat >> ~/.ssh/authorized_keys’
5. Пробуем подключиться.
$ ssh serg@192.168.1.40
Вот и все.
Базовый курс криптографии в данной статье не освещен, но для обеспечения безопасности при использованием несиметричной криптографии (когда есть пара публичный ключ и приватный ключ) следует держать в секрете приватный ключ.
В нашем случае оба ключа находятся в директории /home/user/.ssh/ (id_rsa — приватный, id_rsa.pub — публичный, а user — текущий пользователь на хостовой машине A.
В дальнейшем, для подключения к любым другим удаленным машинам, следует повторить 3-5 этапы.
ИСТОЧНИК.