Беспарольный SSH работает только тогда, когда я уже вошел в систему по SSH

Беспарольный SSH работает только тогда, когда я уже вошел в систему по SSH

Поэтому я настроил 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

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