У нас есть несколько скриптов, которые требуют rsync без ввода пароля. Я пытаюсь подключиться к локальной машине (самому себе) по SSH. Я не могу заставить его работать. У меня всегда спрашивают пароль. Он отлично работает по SSH-подключению к удаленной машине.
Я использую CentOS 6. Домашний каталог пользователя находится в нестандартном месте (то есть не в / home / $ USER).
Вот что я сделал, чтобы заставить это работать.
Я создал закрытый ключ, используя
ssh-keygen -t rsa -C "servername.domain"
без парольной фразы.
скопировал сгенерированный открытый ключ в ~ / .ssh / authorized_keys и попытался использовать SSH, используя
ssh servername.domain
и он просит у меня пароль. Я безрезультатно пытался поиграть с разрешениями этого файла.
Я заметил, что когда я использую пароль SSH, я получаю эту ошибку в файле журнала / var / log / secure. Не уверен, связано ли это, но ошибка приведена ниже.
Feb 12 09:15:34 servername unix_chkpwd[14652]: password check failed for user
При выполнении ssh -v и сравнении результатов поиска, работающего без запроса пароля (удаленного) и всегда запрашивающего (локального), я вижу небольшую разницу. Во-первых, сбой показывает:
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Next authentication method: gssapi-keyex
debug1: No valid Key exchange context
В то время как рабочий сеанс показывает только первую строку, следующие две отсутствуют.
Позже вижу:
debug1: Offering public key: /myuser/.ssh/id_rsa
В рабочей версии это сопровождается:
debug1: Server accepts key: pkalg ssh-rsa blen 277
В то время как в неудачной версии за ним следует:
debug1: Trying private key: /myuser/.ssh/id_dsa
debug1: Next authentication method: password
С тех пор я обнаружил, что SSH работает при отключении selinux. Я думаю, проблема может быть связана с нестандартным расположением домашнего каталога пользователя.
При использовании ключей, если завивка на .ssh
каталог и / или authorized_keys
файлы неверны, тогда ssh возвращается к паролям, если это разрешено (PasswordAuthentication Yes
).
Убедитесь, что права доступа к ~. / Ssh равны 700, а права доступа ~ / .ssh / authorized_keys равны 644 (или более жесткие).
Поскольку вы определили SElinux как причину проблемы и сказали, что домашний каталог пользователя находится в нестандартном месте, проверьте /var/log/audit/audit.log на наличие соответствующих сообщений об отказе AVC.
Вы также можете попробовать изменить название соответствующего дерева каталогов
semanage fcontext -a -t user_home_t "/path/to/homedir(/.*)?"
restorecon -r /path/to/homedir