Почему для «ssh user@machine1» не требуется парольная фраза, а для «ssh root@machine2» требуется?

Почему для «ssh user@machine1» не требуется парольная фраза, а для «ssh root@machine2» требуется?

Это из проблемы входа в DigitalOcean, которую я исследовал.после прочтения этого вопроса на официальном сайте поддержки DigitalOceanЯ получал отказы по моему первоначальному запросу:

ssh root@$IP_DO

По ссылке выше я сначала сузил круг вопросов до:

ssh -o "IdentitiesOnly yes" -i ~/.ssh/id_rsa root@$IP_DO

Когда я сделал вышеописанное, он запросил парольную фразу. Я открыл свой менеджер паролей, и, конечно же, я установил парольную фразу на этот ключ. Ввожу ее, и я в системе.

(Если это имеет значение, я ввел открытый ключ при настройке своей учетной записи Digital Ocean и просто выбрал его для создания дроплета).

Немного ssh-add ~/.ssh/id_rsa, ввел парольную фразу один раз, и теперь DigitalOcean больше не запрашивает у меня пароль.

Но даже до того, как я сделал этот ssh-add выше, я всегда мог подключиться по ssh к виртуальным машинам Virtualbox на сервере в моей локальной сети, без проблем. Это виртуальные машины bitnami, кстати.

В обоих случаях DigitalO cean и VM ~/.ssh/authorized_keysпоказывают одно и то же:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC35MyHYQPWgHgxOffs2oI4jAJCTSldYr1tMb/LMogbTXtQW35mSsWexiwYjPIcdkkOl2Zqrt43696U1oZco90ibkFrbbXrqDGZssbaqfqk7

И глядя на/etc/ssh/sshd_config

Цифровой Океан:

egrep 'Authentication|PAM|Pass' /etc/ssh/sshd_config | grep -v '^#
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM yes

uname -rv
4.4.0-93-generic #116-Ubuntu SMP Fri Aug 11 21:17:51 UTC 2017

Битнами ВМ

egrep 'Authentication|PAM|Pass' /etc/ssh/sshd_config | grep -v '^#'
RSAAuthentication yes
PubkeyAuthentication yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
UsePAM yes

uname -rv
3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26)

Теперь, читая дальше эту ветку, он посоветовал запустить ssh-add ~/.ssh/id_rsa. Это запросило парольную фразу ключа.

Итак, и DigitalOcean, и виртуальная машина работают без парольной фразы, но мне интересно, почему виртуальной машине пароль никогда не нужен, а DigitalOcean нужен?

решение1

Хорошо, я решил эту проблему и почти уверен, что знаю, что произошло.

SSL попробует удаленные public_keys, хранящиеся вавторизованные_ключипротив локальных ключей, использующих систему вызова. Вы на самом деле не знаете или не контролируете последовательность того, что он пробует.

Корень машины 1 (ВМ) ~/.ssh/authorized_keysуказывает на один из моих ключей, который не был защищен парольной фразой, скажемгитхаб. Он также имелid_rsa, но так и не успел спросить об этом, потому что это произошло раньшеid_rsa, с использованиемгитхаб.

Корень machine2 (Digitalocean) ~/.ssh/authorized_keysне включал ссылку на мой незащищенныйгитхабключ идентификации, поэтому в конечном итоге он попалid_rsa. С тех порid_rsaИдентификационные данные пользователя не были загружены в ssh-agent, и поскольку они защищены парольной фразой, меня попросили ввести ее.

Обратите внимание, что это противоречит моему утверждению о том, что авторизованные ключи были одинаковыми. Запись id_rsa была в обоих файлах, но на виртуальной машине Bitnami были и другие открытые ключи.

Связанный контент