У меня странная проблема, когда SSH не может правильно подключиться к закрытому ключу, если файл ключа находится в определенных каталогах. Я установил ключи на наборе серверов и следующую команду
ssh -i /root/privatekey keyuser@host.com
работает нормально, и я вхожу на данный хост, не запрашивая пароль, но эта команда:
ssh -i /etc/keyfiles/privatekey keyuser@host.com
предлагает мне пароль. Я сузил его, что такое поведение наблюдается только в некоторых подкаталогах / etc /. Например /etc/httpd1/
предлагает мне пароль, но /etc/httpd/
не.
Что я уже проверил:
ssh -v
(просто вроде пропускает ключевой файл).После дополнительного тестирования это не настоящее имя каталога. Например:
mkdir /etc/test
cp /root/privatekey /etc/test
ssh -i /etc/test/privatekey keyuser@host.com # Results in password prompt
cp /root/privatekey /etc/httpd # Existing directory
ls -ald test httpd
# drwxr-xr-x 4 root root 4096 Mar 5 18:25 httpd
# drwxr-xr-x 2 root root 4096 Mar 5 18:43 test
ssh -i /etc/httpd/privatekey keyuser@host.com # Results in *no* prompt
rm -r test
cp -R /etc/httpd /etc/test
ssh -i /etc/test/privatekey keyuser@host.com # Results in *no* prompt`
Я уверен, что это просто что-то простое, что я упустил из виду, но я в растерянности.
Вероятная причина - разрешения и права собственности на каталоги. ssh является параноиком и отказывается от ключа на основании разрешений родительского каталога, а также разрешений для ключа и каталога, содержащего его.
Я делаю это в своей среде установки:
ln -fs $(PWD)/ssh3 $(INSTALL_DIR)/.ssh
# Make sure the permissions are OK; ssh is paranoid
chmod 700 ssh3
find ssh3/ -type f -exec chmod 600 {} \;
Известно, что он работает на CentOS 4 и 5.
Я предлагаю при подключении смотреть на вывод ssh -vvv. Также увеличьте уровень ведения журнала до DEBUG в файле / etc / ssh / sshd_config. Это должно дать вам некоторое представление о том, что происходит.
Есть ли ссылки на некоторые из ваших подкаталогов, а некоторые - на настоящие каталоги? Я предполагаю, что это где-то какая-то странная проблема с разрешением.