SSH Key Only

Настройка SSH на клиенте

  1. Переходим в директорию SSH и исправляем права доступа

    1
    2
    3
    4
    
    cd ~/.ssh
    chmod 0700 ./
    touch authorized_keys
    chmod 0644 authorized_keys
  2. Создание ключа ED25519

    1
    
    ssh-keygen -o -a 100 -t ed25519 -f ./id_ed25519
  3. Копируем публичную часть ключа на другой хост

    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 на сервере

  1. Открываем ssh конфиг

    1
    
    sudo nano /etc/ssh/sshd_config
  2. Отключаем логин напрямую через root

    PermitRootLogin no
  3. Отключаем логин по паролю

    PasswordAuthentication no
  4. Включаем логин по ключу

    PubkeyAuthentication yes
  5. Сохраняем файл, перезапускаем службу

    1
    
    sudo systemctl reload ssh
  6. Проверяем отсутствие доступа по паролю

    1
    
    ssh remote_user@remote_host -o PubkeyAuthentication=no

    Ответ должен быть таким:

    Permission denied (publickey).