Безопасно ходим на сервер по 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
и машина прекрасно авторизовывается. Удачи.