Как настроить и использовать SSH в Linux

Если вы какое-то время используете Linux, вы, безусловно, слышали о инструменте, известном как SSH. Secure Shell, обычно известный как SSH, — это сетевой протокол для установления безопасных соединений между клиентом и удаленным сервером. Он предназначен для того, чтобы позволить пользователям безопасно входить на различные типы компьютеров удаленно через сеть. Мы покажем вам, как легко настроить и скопировать ключи SSH на ваш сервер.
Также читайте: Как показать все активные соединения SSH в Linux
Установка SSH
Чтобы начать, нам нужно установить SSH-сервер. Вы можете найти и установить пакет openssh-server в Центре программного обеспечения или вашем менеджере пакетов. В качестве альтернативы, если вы на сервере (или просто предпочитаете использовать терминал), откройте терминал и введите следующую команду:
# Ubuntu/Debian
sudo apt install openssh-server
# Fedora/CentOS/REHL
sudo dnf install openssh-server
Также читайте: Как создать SSH-ловушку для ловли хакеров на вашем сервере Linux
Включение SSH в Linux
Как только сервер OpenSSH будет установлен на вашем компьютере, вам нужно будет запустить и включить единицу systemd. Для этого вы можете просто ввести следующую команду в терминале:
sudo systemctl enable --now ssh
Полезно знать: вы можете подключать программы в Linux, используя SSH-пайпы.
Генерация ключей SSH
Как только вы установили сервер openssh, вы можете начать генерировать пары ключей SSH. Перед тем как продолжить, убедитесь, что у вас нет существующей пары ключей, так как этот процесс перезапишет существующую.
Чтобы проверить, есть ли у вас существующая пара ключей, используйте команду:
ls -la ~/.sshЕсли у вас есть существующая пара ключей, вышеуказанная команда должна показать файлы “id_rsa” и “id_rsa.pub”.

После того как вы убедитесь, что у вас нет существующей пары ключей SSH, вы можете перейти к созданию новой. В противном случае сохраните ваши старые ключи, чтобы не потерять их.
Чтобы сгенерировать новый ключ, используйте команду:
ssh-keygen -t rsa -b 4096Вышеуказанная команда вызывает утилиту ssh-keygen для интерактивной генерации пары ключей SSH. Используя параметр -t, мы указываем тип ключа для генерации. В этом случае мы генерируем ключ RSA.
Мы также используем параметр -b, чтобы указать количество бит в ключе. Если вы используете ключ RSA, минимальный размер бит — 1024. Если не указано, он сгенерирует ключ с 3072 битами.

Хорошо использовать указанное по умолчанию место для хранения ключей SSH, чтобы не вводить путь при подключении к SSH с использованием ключей.
Если вы не хотите шифровать свой ключ с помощью пароля, нажмите Enter, чтобы пропустить.
Копирование ключа на удаленный сервер
Теперь, когда мы сгенерировали новую пару ключей SSH, нам нужно загрузить ее на удаленную машину, которую мы хотим управлять.
Самый эффективный способ сделать это — использовать команду ssh-copy-id. Используйте команду, как:
ssh-copy-id remote_user@remote_IPЕсли вы используете файл ключа с другим именем, вы можете использовать следующую команду, чтобы указать путь к файлу ключа.
ssh-copy-id -i ~/.ssh/id_rsa remote_user@remote_IPЕсли вы впервые входите на удаленную машину, вам нужно будет принять отпечаток.
Далее введите SSH-пароль для удаленного пользователя.
После аутентификации команда ssh-copy-id добавит содержимое вашего ключа id_rsa.pub в файл “~/.ssh/authorized_keys” на удаленной машине и закроет соединение.

Вход на удаленную машину
Как только вы успешно завершите все вышеперечисленные шаги, вы можете войти на удаленный сервер без необходимости ввода пароля.
Вы можете протестировать это с помощью команды:
ssh remote_user@remote_ipЕсли у вас нет пароля для вашего ключа, вы будете автоматически авторизованы.
Часто задаваемые вопросы
1. Безопасен ли SSH?
SSH — это мощный инструмент безопасности, который позволяет аутентифицированным пользователям входить в удаленную систему. Однако он безопасен только настолько, насколько позволяет его конфигурационный файл. Неконфигурированный/неправильно сконфигурированный сервер SSH может быть уязвим для хакеров и стороннего доступа. Убедитесь, что вы защитили конфигурацию SSH сразу после установки.
2. Где находятся авторизованные ключи SSH?
Файл authorized_keys SSH содержит открытый ключ каждого пользователя и указывает, какие пользователи могут входить на сервер. В Linux файл authorized_keys, как правило, находится в папке “.ssh” в домашнем каталоге пользователя.
3. Как я могу исправить проблему с правами доступа ssh-copy-id?
Это происходит только тогда, когда у вас уже есть открытый ключ, настроенный на вашем удаленном сервере, и вы отключили аутентификацию по паролю. Чтобы решить эту проблему, сначала войдите на свой сервер, включите аутентификацию по паролю в файле “/etc/ssh/sshd_config”, затем снова выполните команду ssh-copy-id.
Как только вы скопируете новый файл ключа, не забудьте снова отключить параметр аутентификации по паролю.