Я пытался настроить Git через SSH и строго следовал руководствам, которые видел. Я использую ssh-keygen для создания набора ключей, входа на удаленный хост и добавления открытого ключа в .ssh / authorized_users, используя cat id_rsa.pub >> .ssh/authorized_keys
. Когда я пытаюсь войти в систему, мне все равно предлагается ввести пароль пользователя (пользователя git).
Я также нашел руководство, в котором показано, как использовать инструмент keygen putty, и следил за ним. Опять ничего. Похоже, что ни один вариант любого учебника, который я нашел, не получает sshd на удаленном хосте, чтобы я мог войти в систему с сгенерированным ключом.
Есть ли способ контролировать это вручную? Я пока застрял на Red Hat Enterprise Linux 4.
Убедитесь, что разрешения верны:
$ chown <user> -R ~<user>/.ssh
$ chmod 700 ~<user>/.ssh
$ chmod 600 ~<user>/.ssh/authorized_keys
Если у вас есть доступ к конфигурации SSHd, вы можете проверить, PubkeyAuthentication
установлен на yes
чтобы разрешить аутентификацию с открытым ключом. Если PubkeyAuthentication
установлен на no
вы не сможете войти в систему с вашим открытым ключом, и сервер предложит вам ввести пароль.
Если домашний каталог пользователя имеет права на запись в группе, SSH не разрешит аутентификацию с открытым ключом, потому что в противном случае любой другой член группы мог бы сделать следующее и получить доступ к учетной записи пользователя:
mv .ssh ..ssh
mkdir .ssh
cp ..ssh/* .ssh
echo "myfakekey" >> .ssh/authorized_keys
Я слишком часто вижу домашние каталоги групповой записи. Я зашел так далеко, что создал задание cron для "chmod g-w" каждый домашний адрес один раз в час, когда пользователи отказывались прислушиваться к моим предупреждениям.
Проверьте разрешения в файле authorized_keys - 640 должно быть примерно правильно. SSH может быть (справедливо) разборчивым в отношении разрешений на эти файлы и каталог .ssh, который в худшем случае должен быть 755.
Вы проверяли этот параметр в sshd_config
?
PubkeyAuthentication yes
Также проверьте права доступа к .ssh и закрытому ключу .ssh должен быть 700, а ключ 600.
Проверить AuthorizedKeysFile
в /etc/ssh/sshd_config
. Возможно, это указание на другое место. Сервер auth.log
должен сообщить вам причину сбоя аутентификации. root
требуется доступ.