В статье показано как создать ssh ключи на Linux, как их передать на другой сервер, и как протестировать подключение.

Введение

Для того чтобы иметь возможность подключаться с одного Linux сервера на другой по ssh без пароля вы должны настроить аутентификацию по ssh ключам. Для этого на клиенте генерируется пара ключей: приватный и публичный. Затем публичный ключ передаётся на второй сервер. И пользователь с первого сервера, с помощью приватного ключа может подключиться ко второму серверу, где с помощью публичного ключа проверяется приватный ключ подключаемого.

Проделанные команды из этой статьи должны работать на Debian или Ubuntu от самых старых до последних версий.

Подключение по ssh на linux используя ключи

В этой статье «Сервер 1» будет выступать в качестве клиента, а «Сервер 2» в качестве сервера. А также, все подключение будет выполняться с одного сервера на второй сервер под пользователем root.

Практика

Подготавливаем «Сервер 2»

На удалённый сервер, разрешим подключение по ssh под пользователем root с использованием пароля. Для этого отредактируем конфиг /etc/ssh/sshd_config. После изменения конфига перезапустим службу ssh:

# nano /etc/ssh/sshd_config
PermitRootLogin yes

# systemctl restart ssh

Дополнительно, на Ubuntu придумаем пароль для пользователя root:

$ sudo passwd root

На Debian это делать не нужно, так-как там вы придумывали пароль root пользователю при установке системы.

Создаём ssh ключи на «Сервер 1»

Выполняем команды под пользователем root.

На «Сервер 1», сгенерируем пару SSH ключей, с помощью команды ssh-keygen. Мануал по этой утилите можете посмотреть здесь.

# ssh-keygen

После этого в каталоге .ssh появится пара ключей: id_rsa — приватный ключ, id_rsa.pub — публичный ключ.

# ls -l .ssh/
total 14
-rw------- 1 root root 1679 май 16 11:30 id_rsa
-rw-r--r-- 1 root root  392 май 16 11:30 id_rsa.pub
-rw-r--r-- 1 root root  222 май 16 11:30 known_hosts

Передаём ssh ключи на «Сервер 2»

Передадим публичный ключ на удалённый сервер с помощью утилиты ssh-copy-id. Мануал по этой утилите можете посмотреть здесь.

# ssh-copy-id 192.168.0.12

При этом вы должны указать ip адрес удалённого сервера. И ввести пароль root пользователя, так как обмен ключами ещё не происходил и аутентификация по ssh ключам не работает.

Запретим подключаться к серверу root пользователю с паролем

Вернёмся на «Сервер 2» и снова запретим подключаться root пользователю с использованием пароля:

# nano /etc/ssh/sshd_config
PermitRootLogin prohibit-password

# systemctl restart ssh

Тестовое подключение

Для тестирования возвратимся на «Сервер 1» и попробуем подключиться с него на «Сервер 2».

# ssh 192.168.0.12 hostname

В моём примере я подключаюсь к серверу с ip адресом 192.168.0.12 под пользователем root. И сразу же выполняю на нём команду hostname. Так я получаю имя удалённого сервера.


Другие мои статьи по теме ssh на linux доступны здесь.

Если понравилась статья, подпишитесь на мой канал в VK.

Сводка
Используем ssh ключи на Linux
Имя статьи
Используем ssh ключи на Linux
Описание
В статье показано как создать ssh ключи на Linux, как их передать на другой сервер, и как протестировать подключение

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *