$ ssh-copy-id -i .ssh/id_dsa root@newserver root@newserver 's password: Now try logging into the machine, with "ssh 'centos62-mysql-master'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
После чего споткнулся об запрос пароля, при попытке зайти на сервер под root@newserver.
$ ssh root@newserver root@newserver's password:
Зашел по паролю и проверил содержимое /root/.ssh/authorized_keys - публичная часть ключа была на месте. Подозрение пало на SELiux, который был в режиме enforcing и не первый раз становился виновником мифических глюков. Перевел SELinux в permissive режим:
# setenforce Permissive
После чего заработал логин по ключу. По запросу "centos 6.2 ssh public key selinux" в гугле нашелся Release Notes для CentOS 6.2, где в разделе Known Issues описывается проблема с SSH public key и SELinux.
Make sure that you setup correctly the selinux context of the public key if you transfer it to a CentOS 6 server with selinux enabled. Otherwise selinux might forbid access to the ~/.ssh/authorized_keys file and by matter of consequence key authentication will not work. In order to setup the correct context you can use:
restorecon -R -v /home/$ACCOUNT/.sshssh-copy-id from CentOS 6 is aware of selinux contexts and the previous workaround is not needed.
После выполнения
# restorecon -R -v /root/.ssh
логин через publickey заработал как положено.
Спасибо, поставил на CentOS gitolite и долго не мог понять почему не работает. setenforce Permissive помогло.
ОтветитьУдалитьБлагодарю за информацию. Пригодилась.
ОтветитьУдалитьСпасибо.
ОтветитьУдалить