Я столкнулся с ошибкой при попытке настройки, чтобы я мог подключиться к своему 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
Я также пробовал использовать маршрутизатор, и у меня нет проблем с его настройкой.
Обратите внимание, что ваш /etc/ssh/sshd_config
содержит строку
StrictModes yes
Указывает, должен ли sshd проверять режимы файлов и владение файлами пользователя и домашним каталогом, прежде чем принимать вход в систему. Обычно это желательно, потому что новички иногда случайно покидают свои каталоги или файлы, доступные для записи. По умолчанию установлено значение «Да».
blockquote>Другими словами, ваш домашний каталог
~
на удаленном хосте должен принадлежать вам и групповой собственности (в данном случае это, вероятно, означает владельца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 для получения дополнительных средств отладки на стороне сервера)
Возможно, при генерации ssh-ключа вы добавили пароль к ключу.
Создать новую ssh-клавишу ssh-keygen
Enter passphrase (empty for no passphrase):
< - нажмите клавишу ввода по умолчанию (пароль отсутствует).
Затем ssh-copy-id user@host
Лучше проверить конечный сервер /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
в соответствующее место.