Я успешно создал основанную на ключе аутентификацию для пользователя root с моей машины A на мою машину B.
Теперь я создал нового пользователя на машине B, так же, как на машине A, давайте назовем его USER
. Я создал домашний каталог для него на машине B /home/USER
и хочу создать для него аутентификацию на основе ключей от машины A к машине B.
Итак, я побежал на машине
ssh-keygen -t rsa
, приняли все дорожки, поэтому/home/USER/.ssh/id_rsa
и без фразssh-copy-id -i /home/USER/.ssh/id_rsa.pub USER@BmachinesIP
, ввел пароль и получил массаж
Теперь попробуйте войти в машину Bla Bla Bla
Так что, кажется, все в порядке.
Но когда я попытался подключиться, ssh USER@BmachinesIP
меня попросили ввести пароль. Я попытался увидеть журнал и побежал, ssh -vvv USER@BmachinesIP
и вот часть вывода:
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/USER/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/USER/.ssh/id_dsa
debug3: no such identity: /home/USER/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
USER@BmachinesIP's password:
Итак, кто-нибудь может сказать мне, что я сделал неправильно или что я должен изменить? Возможно проблема в разрешениях, вот они:
на машине:
drwx------ 2 USER USER SIZE DATE TIME .ssh
-rw------- 1 USER USER 1675 2011-10-31 14:36 id_rsa
-rw-r--r-- 1 USER USER 413 2011-10-31 14:36 id_rsa.pub
и на машине B:
drwx------ 2 USER defaultGroup SIZE DATE TIME .ssh
-rw------- 1 USER defaultGroup SIZE DATE TIME authorized_keys
источник
chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
тогда это работает. Скопировано из ответа Maxime R. здесь: askubuntu.com/questions/54670/passwordless-ssh-not-workingТа же проблема для меня свежая установка CentOS7.
1. проверьте разрешения home dir и разрешения ~ / .ssh и ~ / .ssh / authorized_keys (согласно @erik)
2. проверьте настройки / etc / ssh / sshd_config && service sshd restart (после каждого редактирования). Полезно: попробуйте "LogLevel VERBOSE" в sshd_config.
Я все еще получил запрос пароля после проверки всего, что было хорошо.
Запустите ssh-клиент с журналами -vvv:
Журналы сервера (/ var / log / secure):
Сервер ssh не отправляет больше информации об ошибке клиенту, так как это может быть угрозой безопасности.
Если я запускаю sshd на другом порту 'sshd -p 5555 -d'. Ключ работал. Логин без пароля в порядке. WTF?
Затем я отключил selinux (установите SELINUX = отключено в / etc / selinux / config) и перезагрузился. Вход без пароля тогда работал нормально.
мои текущие рабочие настройки sshd_config:
Так что было бы неплохо узнать, можем ли мы изменить что-то маленькое в selinux, чтобы заставить работать без пароля пароль ssh. Кто-нибудь может улучшить ответ?
источник
Решение заключается не в отключении SELinux, а в исправлении разрешений SELinux для пользовательского каталога. Контекст каталога пользователя должен быть установлен в
user_home_t
.Проверять,
Если контекст для вашего пользовательского каталога - что-то, чем
user_home_t
, SELinux не разрешил бы SSH через открытый ключ в этот пользовательский каталог для этого пользователя.Чинить,
Вход на основе ключа теперь должен работать.
источник