Безопасно ходим на сервер по ssh

Многие предпочитаю «дефолтный» метод авторизации на сервере при работе по ssh — пароль, но есть ещё более удобный и надёжный способ — авторизация по ключу. Конечно, с одной стороны, это накладывает некоторые ограничения на возможности удалённой работы (если, находясь в отпуске, вы пытаетесь зайти на сервер из интернет кафе или просто с компьютера друга), но если у вас под рукой всегда есть собственный ноутбук или любое другое устройство, с которого вы можете администрировать машину — авторизация по ключу — крайне удобный и безопасный способ. А Да и настраивается он достаточно просто.

Во-первых нам необходимо на сервере разрешить авторизацию по ключу, для этого редактируем конфиг sshd

nano /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

Если мы при этом хотим так же вообще отключить авторизацию по паролю, необходимо внести ещё корректировки:

PasswordAuthentication no
PermitEmptyPasswords no

Теперь переходим непосредственно к генерации пароля, для этого:
если у вас Windows — вам необходимы утилиты из «пакета» putty:
puttygen.exe — утилита для генерации ключей
pageant.exe — утилита, позволяющая putty работать с приватным ключём
скачать их можно тут.
Если у вас linux/unix/macos — вам не нужно ничего, у вас в системе уже имеется утилита ssh-keygen, при помощи которой и будут генерироваться ключи.
Собственно всё что нужно сделать — запустить утилиту генерации ключей из под своего пользователя, согласиться с «дефолтным» расположением ключа, а поле «секретная фраза» (passfrase) оставить пустым (хотя в качестве меры дополнительной безопасности можно ввети и её, тогда помимо самого ключа, при авторизации так же нужно будет вводить пароль). После генерации мы получаем 2 файла:
id_rsa — приватный ключ, который никому не стоит показывать
id_rsa.pub — публичный ключ, который необходимо перенести на сервер
Так же на директорию с ключами необходимо выставить права только для пользователя:

chmod 700 .ssh
chmod 600 .ssh/id_rsa

Теперь необходимо добавить наш публичный ключ перенести в файл /home/<имя_пользователя>/.ssh/authorized_keys на сервере.
И так же выставить права на директорию только для пользователя, как и на локальной машине:

chown -R <имя_пользователя> /home/<имя_пользователя>/.ssh
chmod 700 /home/<имя_пользователя>/.ssh/
chmod 600 /home/<имя_пользователя>/.ssh/authorized_keys

Теперь всё что нам необходимо:

ssh user@host

и машина прекрасно авторизовывается. Удачи.

Помеченные

Добавить комментарий