Это из проблемы входа в 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 были и другие открытые ключи.