Добавлен открытый ключ SSH, но все равно запрашивается пароль

Я столкнулся с ошибкой при попытке настройки, чтобы я мог подключиться к своему HTPC с моим ноутбуком, я следовал этому руководству из справки Ubuntu

Это мой ~ / .ssh / permissions на моем удаленном хосте

-rw------- 1 htpc htpc  398 Feb 29 15:16 authorized_keys
-rw------- 1 htpc htpc 1675 Feb 29 15:15 id_rsa
-rw-r--r-- 1 htpc htpc  391 Feb 29 15:15 id_rsa.pub

это мой файл / etc / ssh / sshd_config на удаленном хосте

# Authentication: 
LoginGraceTime 120 
PermitRootLogin without-password 
StrictModes yes
RSAAuthentication yes 
PubkeyAuthentication yes 
AuthorizedKeysFile      %h/.ssh/authorized_keys

Когда я пытаюсь войти с моего локального компьютера через SSH , он все еще спрашивает у меня пароль, хотя мой открытый ключ ssh находится в авторизованных ключах на удаленном хосте.

Журнал отладки при подключении с локального компьютера к htpc

debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/mikeyr/.ssh/id_rsa
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/mikeyr/.ssh/id_dsa
debug1: Trying private key: /home/mikeyr/.ssh/id_ecdsa
debug1: Trying private key: /home/mikeyr/.ssh/id_ed25519
debug1: Next authentication method: password

Я также пробовал использовать маршрутизатор, и у меня нет проблем с его настройкой.

1
задан 29 February 2016 в 18:07

3 ответа

Обратите внимание, что ваш /etc/ssh/sshd_config содержит строку

 StrictModes yes

Указывает, должен ли sshd проверять режимы файлов и владение файлами пользователя и домашним каталогом, прежде чем принимать вход в систему. Обычно это желательно, потому что новички иногда случайно покидают свои каталоги или файлы, доступные для записи. По умолчанию установлено значение «Да».

Другими словами, ваш домашний каталог ~ на удаленном хосте должен принадлежать вам и групповой собственности (в данном случае это, вероятно, означает владельца htpc и группу htpc), и только для записи вами (и, возможно, вашей группой): это означает отсутствие записи в последнем ("мире") столбце

$ ls -la ~/
drwxr-xr-x 41 htpc htpc .

Обратите внимание, что в последней части написано r-x (не для записи в мире), НЕ [ 118].

Если в последнем триплете есть rwx, вам нужно удалить права на запись:

chmod a-w ~

Аналогично для папки ~/.ssh и ~/.ssh/authorized_keys. Я бы порекомендовал chmod 700 ~/.ssh предоставлять только доступ к себе для папки, а chmod 600 ~/.ssh/authorized_keys - для файла.

(также см. https://unix.stackexchange.com/a/16981/5477 для получения дополнительных средств отладки на стороне сервера)

0
ответ дан 29 February 2016 в 18:07

Возможно, при генерации ssh-ключа вы добавили пароль к ключу.

Создать новую ssh-клавишу ssh-keygen

Enter passphrase (empty for no passphrase): < - нажмите клавишу ввода по умолчанию (пароль отсутствует).

Затем ssh-copy-id user@host

0
ответ дан 29 February 2016 в 18:07

Лучше проверить конечный сервер /etc/ssh/sshd_config, чтобы проверить, куда копировать исходный паблик ключ (т.е. authorized_keys расположение на целевом сервере)

В моем случае это было /etc/ssh/keys/%u/authorized_keys2

/etc/ssh/sshd_config

# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile /etc/ssh/keys/%u/authorized_keys2

#AuthorizedPrincipalsFile none

Итак попробуйте ssh-соединение без пароля после копирования ваших authorized_keys в соответствующее место.

0
ответ дан 5 June 2020 в 09:08

Другие вопросы по тегам:

Похожие вопросы: