Как настроить ключи SSH в Debian 9

Secure Shell (SSH) — это криптографический сетевой протокол, используемый для безопасного соединения между клиентом и сервером и поддерживающий различные механизмы аутентификации.

Двумя наиболее популярными механизмами являются аутентификация на основе пароля и аутентификация на основе открытого ключа. Использование ключей SSH более безопасно и удобно, чем традиционная аутентификация по паролю.

В этом руководстве мы расскажем, как сгенерировать ключи SSH в системах Debian 9. Мы также покажем вам, как настроить аутентификацию на основе ключа SSH и подключиться к удаленным серверам Linux без ввода пароля.

Создание ключей SSH в Debian

Перед созданием новой пары ключей SSH сначала проверьте существующие ключи SSH на вашем клиентском компьютере Debian. Вы можете сделать это, выполнив следующую команду ls :

ls -l ~/.ssh/id_*.pub

Если вывод команды выше содержит что-то вроде No such file or directory или no matches found это означает, что у вас нет ключей SSH, и вы можете перейти к следующему шагу и сгенерировать новую пару ключей SSH.

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

Начните с создания новой 4096-битной пары ключей SSH с вашим адресом электронной почты в качестве комментария, используя следующую команду:

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Результат будет выглядеть примерно так:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Нажмите Enter чтобы принять расположение и имя файла по умолчанию.

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

Enter passphrase (empty for no passphrase):

Если вы не хотите использовать кодовую фразу, просто нажмите Enter .

В целом взаимодействие выглядит так:

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

ls ~/.ssh/id_*

Результат должен выглядеть примерно так:

/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

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

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

Самый простой и рекомендуемый способ скопировать открытый ключ на удаленный сервер — использовать инструмент ssh-copy-id .

На терминале вашего локального компьютера выполните следующую команду:

ssh-copy-id remote_username@server_ip_address

Вам будет предложено ввести пароль remote_username :

remote_username@server_ip_address's password:

После аутентификации пользователя открытый ключ ~/.ssh/id_rsa.pub будет добавлен к файлу удаленного пользователя ~/.ssh/authorized_keys , и соединение будет закрыто.

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.

Если ssh-copy-id недоступна на вашем локальном компьютере, вы можете использовать следующую команду для копирования открытого ключа:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Войдите на сервер с помощью ключей SSH

На этом этапе вы должны иметь возможность войти на удаленный сервер без запроса пароля.

Чтобы проверить это, попробуйте подключиться к серверу по SSH:

ssh remote_username@server_ip_address

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

Отключение аутентификации по паролю SSH

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

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

Войдите на свой удаленный сервер:

ssh sudo_user@server_ip_address

Откройте файл конфигурации SSH /etc/ssh/sshd_config :

sudo vim /etc/ssh/sshd_config

Найдите следующие директивы и измените их следующим образом:

/etc/ssh/sshd_config
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no

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

sudo systemctl restart ssh

На этом этапе аутентификация на основе пароля отключена.

Выводы

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

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

По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию снижает риск автоматических атак.

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

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

Оставьте комментарий