Назад | Перейти на главную страницу

Почему я могу войти по ssh без ключа или пароля? Как мне это остановить?

Я только что обнаружил, что могу войти на свой сервер, если предоставлю недостающий файл клиенту ssh!

Что я могу проверить, чтобы узнать, почему и что я могу изменить, чтобы этого не произошло?

Вход в систему с отсутствующим файлом

$ ssh -i ~/.ssh/x user@server.com
Warning: Identity file /c/Users/G/.ssh/x not accessible: No such file or 
directory.
Last login: Wed Aug  9 20:20:49 2017 from 192.168.15.250
user@server:~$

Не удается войти в систему с недействительным сертификатом

$ ssh -i ~/.ssh/invalid.pem user@server
Permission denied (publickey).

Успешный вход в систему

$ ssh -i ~/.ssh/valid.pem user@server
Last login: Wed Aug  9 20:21:07 2017 from 192.168.15.250
user@server:~$

Это единственные строки без комментариев в моем / etc / ssh / sshd_config

Host *
    SendEnv LANG LC_*
    HashKnownHosts yes
    GSSAPIAuthentication yes
    GSSAPIDelegateCredentials no

В ответ на вопрос «Что я могу проверить, чтобы узнать почему»

ssh -vv. Параметр -vv дает подробную отладку, показывающую, что происходит между нажатием клавиши возврата на локальном клиенте и отображением приглашения на удаленном сервере.

В ответ на вопрос "Почему я могу войти в систему по ssh без ключа или пароля?"

Это не то, что происходило. В этом конкретном случае соответствующий ключ, valid.pem был продублирован в id_rsa файл. Дубликат ключа использовался


На этом клиенте происходит следующее:

  1. Отображается предупреждение, что указанный ключевой файл недоступен
  2. клиент пытается найти любой подходящий ключ

как показано здесь:

debug2: key: /c/Users/G/.ssh/id_rsa (0x0)
debug2: key: /c/Users/G/.ssh/id_dsa (0x0)
debug2: key: /c/Users/G/.ssh/id_ecdsa (0x0)
debug2: key: /c/Users/G/.ssh/id_ed25519 (0x0)
  1. Затем он пытается id_rsa ключ. Как показано здесь debug1: Trying private key: /c/Users/G/.ssh/id_rsa
  2. Сервер видит, что этот ключ действителен, и позволяет продолжить вход в систему. debug1: Authentication succeeded (publickey).