Аутентификация с закрытым ключом SSH не работает на сервере Ubuntu

Недавно я создал новую виртуальную машину с сервером Ubuntu 20.04.3, и чтобы использовать аутентификацию пары ключей для сервера SSH, я создал пару ключей с помощью ssh-keygen и включен PubkeyAuthentication yes в /etc/ssh/sshd_config, но я не могу войти по SSH через:

ssh -i ~/.ssh/id_rsa user@192.168.1.6
  • /etc/ssh/sshd_config:
    (Отключение аутентификации по паролю и разрешение только аутентификации по ключу тоже не сработало)
    Include /etc/ssh/sshd_config.d/*.conf
    
    PermitRootLogin yes
    PubkeyAuthentication yes
    
    PasswordAuthentication yes
    ChallengeResponseAuthentication no
    
    UsePAM yes
    
    X11Forwarding yes
    PrintMotd no
    
    AcceptEnv LANG LC_*
    
    Subsystem       sftp    /usr/lib/openssh/sftp-server
    
  • Я хочу иметь возможность войти на сервер, не имея открытого ключа на сервере. authorized_keys

2 ответа
2

Я попытался отключить аутентификацию по паролю и разрешить только аутентификацию по ключу, но это тоже не сработало.

Если аутентификация по ключу не работает, значит, она не работает. независимо от других типов аутентификации. Они не мешают друг другу.

(Без открытого ключа в файле authorized_keys сервера)

Так не пойдет. Буквально каждый может сгенерировать свою собственную пару ключей id_rsa — наличие открытого ключа в файле authorized_keys сервера — это то, как сервер действительно знает, что это твой ключ а не чужой.

  • Оцените ваш ответ, не говоря уже о том, что я не понимаю, о чем вы говорите. Но я видел людей, использующих закрытый ключ (id_rsa) для входа на серверы в некоторых событиях CTF (Capture The Flags). Я надеюсь, что должно произойти какое-то изменение конфигурации. Простите меня, если я дурак.

    — Кавишка Гихан

    3 часа назад

  • Да, они его используют, но на самом деле в этом весь смысл всей схемы аутентификации: вы не выбираете использовать тот или другой — вы всегда используете как частные а также открытые ключи в той же процедуре. Так что да, вы обычно будете видеть людей, использующих закрытый ключ, но это работает. потому что серверу известен соответствующий открытый ключ.

    — user1686

    3 часа назад

  • Понятно сейчас. Большое спасибо!

    — Кавишка Гихан

    3 часа назад

Открытый ключ внутри authorized_keys файл на сервере, в пользовательском ~/.ssh Папка, к которой вы пытаетесь подключиться, по сути, является замочной скважиной. Он нужен вам для подключения к указанному пользователю с помощью соответствующего закрытого ключа.

У вас есть PermitRootLogin установлен в yes так что я предполагаю, что это тоже может быть то, что вы пытаетесь сделать. Если вы пытаетесь использовать root для подключения, вы можете убедиться, что файл «authorized_keys», который вы пытаетесь использовать для подключения, находится в папке /root/.ssh/ папка.

В этом случае вы также можете установить: PermitRootLogin к prohibit-password, Я не уверен, нужно ли это, хотя, безусловно, было бы безопаснее.

В конечном итоге вы, вероятно, также захотите установить PasswordAuthentication вернуться к no.

  • На самом деле я не пытаюсь использовать ssh как root. Я просто хочу войти по ssh как пользователь.

    — Кавишка Гихан

    3 часа назад

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

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