
Поэтому я настроил ssh без пароля, используя следующее:Как настроить вход по SSH без пароля?
После настройки я бы ожидал, что мне не понадобится пароль для ssh. Моя проблема в том, что при первом подключении к ssh он запросит у меня пароль, но дополнительные сеансы поверх этого будутнетзапросить пароль.
Я уже проверил свой sshd_config, чтобы убедиться, что он содержит:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
Я почти уверен, что у меня правильные права доступа, иначе беспарольный ssh вообще не работал бы.
Чтобы добавить больше "веселья" к этой проблеме, я заметил, что когда я перезагружаю свой компьютер (клиентский компьютер или серверный компьютер ssh), иногда это работает. Затем, когда я выключаю компьютер и пробую снова на следующий день, это больше не работает. Может быть, это совершенно случайно, но это то, что я заметил.
решение1
Это распространенная проблема с зашифрованным домом, и на нее уже много раз отвечали, например, наUnix, но даже в официальномДокументация Ubuntu.
Вероятно, это вызвано тем, что ваш домашний каталог (и, следовательно, ключ) недоступен во время входа в систему. Это может быть вызвано тем, что ваш домашний каталог монтируется с сетевого диска (в общей системе) после входа в систему или ваш домашний каталог зашифрован (обычно инсталляции рабочих станций).
Решение этой проблемы сложное, но я посмотрю, есть ли у вас возможность обсудить этот вопрос. Решение заключается в том, чтобы переместить его
AuthorizedKeysFile
в другое место, которое будет доступно, или использовать глобальное хранилище ключей (/etc/security/authorized_keys
), или какую-то систему управления SSO (IPA, LDAP), которая получит ваш ключ с сервера каталогов (да, может быть локальным). Зависит от того, насколько вы контролируете целевую систему.Вероятно, лучшим решением будет сохранить ключи в другом месте, изменив значение в
sshd_config
:AuthorizedKeysFile /etc/ssh/%u/authorized_keys
В любом случае, если вы переместите свои authorized_keys
, убедитесь, что у них есть соответствующие разрешения, и учтите тот факт, что если вы войдете в систему с использованием открытого ключа, вы не сможете получить доступ к своему домашнему каталогу (он зашифрован вашим паролем!), если только вы не измените способ его шифрования.
решение2
Если сертификат скопирован правильно, то он должен работать с соединением, сформированным следующим образом:
ssh hostname\ip -l username
Где username — это пользователь, у которого есть сертификат в .ssh/authorized_keys