Настройка SSH доступа по сертификатам

В целях удобства и безопасности не мешает настроить доступ к ssh серверу по ключам, а стандартную аутентификацию по паролю отключить. Это обеспечит сервак надежной защитой от брутфорса и избавит нас от перманентного ввода пароля вручную. В терминале linux ключи генерируются встроенной утилитой ssh-keygen

# создадим папку и сгенерируем в ней 2 ключа, приватный и публичный
mkdir sshkeys
cd !$
ssh-keygen -t rsa -b 4096 -f id_rsa
# вводим и подтверждаем пароль к приватному ключу(не обязателен)

В папке будет создано 2 файла:

  • id_rsa — приватный ключ, устанавливается на клиенте
  • id_rsa.pub — публичный ключ, устанавливаемый на сервере

Добавить публичный ключ на удаленную серверную машину можно командой:

ssh-copy-id -i id_rsa.pub root@hostname

На локальной серверной машине публичный ключ добавляется так:

cat id_rsa.pub >> /root/.ssh/authorized_keys

Теперь на серверной машине отредактируем файл /ect/ssh/sshd_config таким образом, чтобы указанные строки имели параметры:

PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys

И перезапустим сервис

systemctl restart ssh

Чтобы добавить приватный ключ на клиентскую локальную машину:

ssh-add ~/sshkeys/id_rsa

В ином случае, добавить приватный ключ так, как того требует программа — ssh клиент.

И напоследок, в целях безопасности, изменим стандартный ssh порт и отключим авторизацию под root по ssh. То есть пользователь должен будет сперва авторизоваться, а затем через su входить под root или sudo. Также отключим авторизацию по паролю, авторизация останется только по ключу. В конфиге:

Port 7777
PermitRootLogin no
PasswordAuthentication no

и сделаем рестарт сервиса:

systemctl restart ssh

Поздравляю! Ваш сервер в абсолютной безопасности! Вы не сможете на него попасть. У вас есть ключ для root? Но доступ к ssh под root отключен. У вас есть пользователь? Но вы не создали для него ssh ключи. А доступ по паролю к ssh закрыт для всех пользователей.

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

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *