Настройка SSH на клиенте
-
Переходим в директорию SSH и исправляем права доступа
1 2 3 4
cd ~/.ssh chmod 0700 ./ touch authorized_keys chmod 0644 authorized_keys
-
Создание ключа ED25519
1
ssh-keygen -o -a 100 -t ed25519 -f ./id_ed25519
-
Копируем публичную часть ключа на другой хост
1
ssh-copy-id -i ./id_ed25519.pub remote_user@remote_host
Если
ssh-copy-id
нет, скопируйте вручную:1
cat ./id_ed25519.pub | ssh remote_user@remote_host "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
Настройка SSH на сервере
-
Открываем ssh конфиг
1
sudo nano /etc/ssh/sshd_config
-
Отключаем логин напрямую через root
PermitRootLogin no
-
Отключаем логин по паролю
PasswordAuthentication no
-
Включаем логин по ключу
PubkeyAuthentication yes
-
Сохраняем файл, перезапускаем службу
1
sudo systemctl reload ssh
-
Проверяем отсутствие доступа по паролю
1
ssh remote_user@remote_host -o PubkeyAuthentication=no
Ответ должен быть таким:
Permission denied (publickey).