我正在build立连续集成(CI)服务器和testingWeb服务器。 我想CI服务器将访问公钥authentication的Web服务器。 在Web服务器中,我创build了一个用户并生成了密钥
sudo useradd -d /var/www/user -m user sudo passwd user sudo su user ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/var/www/user/.ssh/id_rsa): Created directory '/var/www/user/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/www/user/.ssh/id_rsa. Your public key has been saved in /var/www/user/.ssh/id_rsa.pub.
然而,另一方面,CI服务器将密钥复制到主机但仍然要求密码
ssh-copy-id -i ~/.ssh/id_rsa.pub user@webserver-address user@webserver-address's password: Now try logging into the machine, with "ssh 'user@webserver-address'", and check in: .ssh/authorized_keys to make sure we haven't added extra keys that you weren't expecting.
我检查了Web服务器和CI服务器公钥已被复制到Web服务器authorized_keys但是当我连接,它要求密码。
ssh 'user@webserver-address' user@webserver-address's password:
如果我尝试使用root用户而不是我创build的用户(两个用户都使用复制的公钥)。 它与公钥连接
ssh 'root@webserver-address' Welcome to Ubuntu 11.04 (GNU/Linux 2.6.18-274.7.1.el5.028stab095.1 x86_64) * Documentation: https://help.ubuntu.com/ Last login: Wed Apr 11 10:21:13 2012 from ******* root@webserver-address:~#
你的问题说你想从CI服务器login到networking服务器。 但是你然后说你在networking服务器上创build了密钥。 我不确定这是误解还是错误。
下面简要介绍一下你需要做什么来使用密钥从CI服务器login到networking服务器:
id_rsa.pub )复制到networking服务器上,以每个用户( root , user等)的身份login到~/.ssh/authroized_keys文件中。 我通常只是使用scp将文件复制到服务器。 如果您有多个要用于每个用户的密钥,请将其附加到authorized_keys 。 否则,如果这是该用户唯一的密钥,则可以将id_rsa.pub重命名为authorized_keys 。 chmod 644 .ssh确保.ssh文件夹的权限为644,并且使用chmod 700 .ssh/authorized_keys授权的密钥文件的权限为700。 ssh user@webserver 它不应该要求一个密码(这是假设你已经按照@ khaled关于sshdconfiguration文件的build议,但默认情况下通常设置为允许密码之前的密钥authentication)。