Установка ключей для SSH
SSH (Secure Shell) — это защищённый протокол для доступа к инструментам администрирования сервера. Доступ к SSH осуществляется по логину и паролю. Но если Вы часто пользуетесь SSH, то каждый раз вводить логин и пароль будет крайне неудобно.
Для того, чтобы можно было избежать ввода логина и пароля при каждом входе используются ключи доступа. Помимо того, что это просто удобно, это ещё и очень безопасно, так как Вы можете запретить вход по логину и паролю вовсе.
Создание пару ключей RSA
В первую очередь нам нужно создать пару ключей, который Вы будете использовать для доступа. Как правило, это делается на Вашем же компьютере, но также их можно создать и на сервере.
По умолчанию, ssh-keygen
создаст пару 2048-битных ключей. Вы можете также создать и 4096-битные ключи, что более безопасно, добавив к команде флаг -b 4096
.
После ввода и запуска команды Вы увидите нечто вроде:
Нажмите ENTER
для сохранения пары ключей в папку .ssh
Вашей домашней директории.
Если Вы уже создавали ключи ранее, то программа попросит Вас подтвердить их перезапись:
Обратите внимание на то, что если Вы перезапишите ранее созданные ключи, то те ранее созданные ключи перестанут работать. Поэтому будьте очень осторожны и не делайте перезапись, если не уверены в последствиях.
Далее программа попросит Вас ввести кодовую фразу:
По желанию вы можете ввести кодовую фразу (пароль) для доступа к ключам. Это добавляет дополнительный уровень защиты, но в то же время замедляет процедуру входа, так как Вам придётся вводить эту кодовую фразу каждый раз при использовании ключей.
После того, как пара ключей будет создана, Вы увидите нечто вроде этого:
Теперь у Вас есть публичный и приватный ключи, которые Вы можете использовать для входа на серверы.
Копирование публичного ключа на сервер
Далее намн ужно скопировать полученный публичный ключ на сервер, куда Вы планируете входить с помощью этих ключей.
Для этого существует утилита ssh-copy-id
, которая сделает всю работу. Если у Вас нет этой утилиты, Вы можете скопировать файлы вручную.
Для копирования ключей с помощью ssh-copy-id
введите следующую команду:
Вы увидите нечто вроде этого:
Это означает, что Ваш локальный компьютер пока ещё не опознаёт удалённый сервер. Это происходит при каждом первом подключении к новому удалённому серверу. Просто введите yes
и нажмите ENTER.
Далее, утилита найдёт в Вашей домашней директории публичный ключ и запросит у Вас пароль для доступа к удалённому серверу.
Введите пароль и нажмите ENTER. Обратите внимание на то, что при вводе Вы не будете видеть вводимый пароль на экране. Поэтому просто введите пароль и не беспокойтесь о том, что Вы его не видите.
Далее утилита подключится к удалённому серверу и скопирует на него публичный ключ. Копирование как правило производится в директорию ~/.ssh
, в файл authorized_keys
.
После завершения копирования Вы увидите следующее:
Подключение к серверу с помощью ключей
Теперь Вы можете подключаться к серверу с помощью созданных ключей.
Если Вы используете в качестве ОС Linux, то просто введите ssh username@remote-host
и далее система сама найдёт Ваш приватный ключ и использует его для подключения.
Если Вы используете Windows и программу Putty или подобную, то Вам нужно указать приватный ключ в настройках этой программы.
Отключение входа по паролю
Для повышения безопасности Вы можете отключить вход на сервер по паролю и оставить только вход с помощью ключей.
Перед тем как отключать доступ по паролю, убедитесь, что созданные Вами ключи работают. Если Вы отключите доступ по паролю и не будете иметь работающие ключи, восстановить доступ будет крайне затруднительно.
Чтобы отключить доступ по паролю потребуется изменить параметр в файле конфигурации SSH-сервера.
Для этого откройте через любимый редактор (nano, mcedit, vim) файл /etc/ssh/sshd_config
:
В файле найдите строку PasswordAuthentication
. Введите после неё no
. Должно получиться так:
Если строка закомментирована (перед ней стоит символ #
), то удалите этот символ.
Далее сохраните изменения в файле и перезапустите SSH-сервер:
Теперь доступ по паролю без ключей невозможен.
Last updated