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 "[email protected]"
Результат будет выглядеть примерно так:
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
Найдите следующие директивы и измените их следующим образом:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
Как только вы закончите, сохраните файл и перезапустите службу SSH, используя следующую команду:
sudo systemctl restart ssh
На этом этапе аутентификация на основе пароля отключена.
Выводы
В этом руководстве вы узнали, как сгенерировать новую пару ключей SSH и настроить аутентификацию на основе ключей SSH. Вы можете добавить один и тот же ключ на несколько удаленных серверов.
Мы также показали вам, как отключить аутентификацию по паролю SSH и добавить дополнительный уровень безопасности на ваш сервер.
По умолчанию SSH прослушивает порт 22. Изменение порта SSH по умолчанию снижает риск автоматических атак.
Если вы регулярно подключаетесь к нескольким системам, вы можете упростить рабочий процесс, указав все свои подключения в файле конфигурации SSH .
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.