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

SSH на Ubuntu

Если вы какое-то время используете 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 на Ubuntu

Также читайте: Как создать SSH-ловушку для ловли хакеров на вашем сервере Linux

Включение SSH в Linux

Как только сервер OpenSSH будет установлен на вашем компьютере, вам нужно будет запустить и включить единицу systemd. Для этого вы можете просто ввести следующую команду в терминале:

sudo systemctl enable --now ssh

Включение SSH на Ubuntu

Полезно знать: вы можете подключать программы в Linux, используя SSH-пайпы.

Генерация ключей SSH

Как только вы установили сервер openssh, вы можете начать генерировать пары ключей SSH. Перед тем как продолжить, убедитесь, что у вас нет существующей пары ключей, так как этот процесс перезапишет существующую.

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

ls -la ~/.ssh

Если у вас есть существующая пара ключей, вышеуказанная команда должна показать файлы “id_rsa” и “id_rsa.pub”.

Ls La Ssh

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

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

ssh-keygen -t rsa -b 4096

Вышеуказанная команда вызывает утилиту ssh-keygen для интерактивной генерации пары ключей SSH. Используя параметр -t, мы указываем тип ключа для генерации. В этом случае мы генерируем ключ RSA.

Мы также используем параметр -b, чтобы указать количество бит в ключе. Если вы используете ключ RSA, минимальный размер бит — 1024. Если не указано, он сгенерирует ключ с 3072 битами.

SSH Keygen RSA

Хорошо использовать указанное по умолчанию место для хранения ключей 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 ID

Вход на удаленную машину

Как только вы успешно завершите все вышеперечисленные шаги, вы можете войти на удаленный сервер без необходимости ввода пароля.

Вы можете протестировать это с помощью команды:

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.

Как только вы скопируете новый файл ключа, не забудьте снова отключить параметр аутентификации по паролю.