Как настроить authorized_keys SSH в Ubuntu?

Как настроить authorized_keys SSH в Ubuntu Изучение

SSH или Secure Shell предназначен для доступа к содержимому удаленного хоста для удаленного выполнения различных типов задач. По умолчанию SSH не установлен в Ubuntu. SSH может обеспечить защищенный паролем зашифрованный доступ к удаленной системе после установки. Сервер SSH работает на удаленном хосте, а клиент SSH работает в системе, которая устанавливает удаленное соединение. Authorized_keys файл является наиболее важной частью соединения SSH. Он определяет ключи, используемые для аутентификации пользователей, которым разрешено входить на удаленный хост с использованием аутентификации с открытым ключом. Использование этого файла для SSH-соединения объясняется в этом руководстве.

Предпосылки

SSH-сервер по умолчанию не установлен в Ubuntu. Перед запуском этого руководства вам необходимо установить пакет OpenSSH, который будет работать как SSH-сервер. Выполните следующую команду, чтобы установить сервер OpenSSH, если он не был установлен в системе ранее.

$ sudo apt install openssh-server

Сгенерируйте SSH-ключ

Сгенерируйте пары ключей SSH для выполнения команд на удаленном сервере. Выполните следующую команду, чтобы создать открытый и закрытый ключи. Закрытый ключ будет храниться на удаленном сервере, а открытые ключи будут надежно храниться на клиенте.

$ ssh-keygen -t rsa

После выполнения вышеуказанной команды он спросит имя файла, в котором будет храниться ключ. Нажмите клавишу Enter, чтобы сохранить имя файла открытого ключа по умолчанию — id_rsa.pub. Затем он запросит пароль для входа в систему. Снова нажмите клавишу Enter два раза, если вы хотите сохранить пустой пароль. Следующий аналогичный вывод появится после генерации ключей.

Следующий аналогичный вывод появится после генерации ключей

Создайте файл authorized_keys

Файл id_rsa.pub содержит открытый ключ SSH-соединения, хранящийся в папке ~ /.ssh / удаленного хоста. Клиентскому компьютеру также потребуется открытый ключ для подключения к удаленному хосту, который будет скопирован в следующей части руководства. Вы должны создать файл с именем authorized_keys внутри папки ~ /.ssh удаленного хоста, который будет содержать открытый ключ. Выполните следующую команду, чтобы переместить файл id_rsa.pub в файл ~ /.ssh / authorized_keys.

$ mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

Ошибка не появится, если файл будет перемещен правильно, как на следующем изображении.

Читайте также:  Какую операционную систему выбрать для веб-разработки?

Ошибка не появится, если файл будет перемещен правильно

Измените файл конфигурации

Вы должны установить некоторые параметры конфигурации на сервере, чтобы установить SSH-соединение без пароля. Выполните следующую команду, чтобы открыть файл sshd_config с помощью редактора nano, чтобы установить необходимые значения параметров.

$ sudo nano /etc/ssh/sshd_config

Установите для параметра PasswordAuthentication значение no, чтобы отключить параметр текстового пароля для SSH-соединения.

Пароль Аутентификация нет.

Сохраните и закройте файл. Выполните следующую команду, чтобы перезапустить службу SSH.

$ sudo systemctl restart ssh

Выполните следующую команду, чтобы установить биты разрешений для файла authorized_keys, чтобы предотвратить несанкционированный доступ к этому файлу.

$ chmod 600 ~/.ssh/authorized_keys

Скопируйте открытый ключ на клиентскую машину

Теперь войдите на клиентский компьютер, с которого вы будете выполнять команду ssh, чтобы установить SSH-соединение с удаленным хостом. Здесь две учетные записи пользователей Ubuntu использовались для проверки SSH-соединения на локальном сервере. Одна учетная запись пользователя использовалась в качестве клиента, а другая учетная запись пользователя использовалась в качестве сервера в этом руководстве.

Выполните следующую команду, чтобы создать папку с именем ~ /.ssh на клиентском компьютере, если она не существует.

$ mkdir ~/.ssh

Выполните следующую команду, чтобы скопировать открытый ключ с удаленного хоста в папку ~ /.ssh клиента.

$ scp <a href=»mailto:fahmida@fahmida-VirtualBox:/home/fahmida/.ssh/id_rsa%20~/.ssh/»>fahmida@fahmida-VirtualBox:/home/fahmida/.ssh/id_rsa ~/.ssh/</a>

Вы должны предоставить пароль имени пользователя удаленного хоста для копирования открытого ключа на клиентскую машину. Если файл скопирован правильно, вы получите следующий результат. Теперь клиентский компьютер готов установить соединение с сервером с помощью службы ssh.

Теперь клиентский компьютер готов установить соединение с сервером с помощью службы ssh

Вход на серверную машину с помощью SSH без пароля

Теперь открытый ключ существует как на клиентских, так и на серверных машинах. Когда клиентский компьютер отправляет запрос на соединение серверу с помощью команды ssh, сервер сопоставляет открытый ключ клиента с открытым ключом сервера. Если совпадения найдены, то соединение будет установлено от клиента к серверу. Вы можете подключиться к серверу или удаленному хосту, используя имя хоста или IP-адрес. Локальный сервер использовал это руководство, чтобы показать использование авторизованных ключей для установления SSH-соединения с клиентского компьютера на серверный. Одна учетная запись использовалась как серверная машина, на которой установлен сервер OpenSSH, а другая учетная запись использовалась здесь как клиентская машина. Выполните следующую команду на клиентском компьютере, чтобы установить соединение с сервером.

$ ssh fahmida@fahmida-VirtualBox

Следующий вывод появится после выполнения указанной выше команды. Выходные данные показывают, что имя пользователя клиентской машины — «yesmin». Имя пользователя серверной машины — fahmida. SSH-соединение установлено правильно, поскольку имя пользователя изменилось на «fahmida» с «yesmin». Теперь можно легко получить доступ к содержимому серверной машины. Если пользователь сейчас выполняет какую-либо команду, вывод будет сгенерирован на основе сервера.

Если пользователь сейчас выполняет какую-либо команду, вывод будет сгенерирован на основе сервера

Заключение

Использование authorized_keys для установления SSH-соединения было объяснено в этом руководстве с использованием localhost. Вы можете выполнить тот же процесс, чтобы установить SSH-соединение для удаленного хоста. Вы также можете использовать команду ssh-copy-id, чтобы установить SSH-соединение с сервером, показанным в другом руководстве.

Оцените статью
bestprogrammer.ru
Добавить комментарий