我遵循无密码login指南:
# Generate Key ssh-keygen #Append Key cat ~/.ssh/id_rsa.pub | ssh user@remotehost 'cat >> ~/.ssh/authorized_keys' #login ssh [email protected]
…我打开authorized_keys,以确保密钥已添加,但我仍然需要input密码login。
我什至尝试复制与ssh-copy-id和密钥成功添加,但它仍然要求input密码。
myname-MBP:~ mynameezzy$ ssh [email protected] "ls -la .ssh" [email protected]'s password: total 28 drwxr-xr-x 2 myname neouser 4096 Sep 14 09:58 . drwxrwxr-x 7 myname myname 4096 Sep 14 12:02 .. -rw-rw-r-- 1 myname neouser 811 Sep 15 01:38 authorized_keys -rw-rw-r-- 1 myname neouser 400 Sep 12 02:32 authorized_keys.bak -rw------- 1 myname neouser 1675 Sep 11 11:27 id_rsa -rw-r--r-- 1 myname neouser 400 Sep 11 11:27 id_rsa.pub -rw-r--r-- 1 myname neouser 1010 Sep 14 09:58 known_hosts
我究竟做错了什么?
在remotehost ,尝试
chmod 700 $HOME/.ssh chmod 600 $HOME/.ssh/authorized_keys
编辑 :我发现解决大多数这些问题的快速方法是在远程服务器上的另一个端口上运行秒,不分离,loggingsshd ,并连接到该。
在服务器上: /usr/sbin/sshd -d -p 2222
在客户端上: ssh remotehost -p 2222
然后从非分离的sshd仔细查看STDOUT。 您可能需要在remotehost主机的防火墙上打开一个入站端口。 在这种情况下,2222。
更改.ssh目录的权限
chmod 700 $HOME/.ssh chmod 600 $HOME/.ssh/authorized_keys
SSH是相当简单的,所以假设你没有做任何configuration更改,没有太多的疑难解答。
您是否可以使用您的客户端使用SSH和公共密钥login到任何机器?
目视确认主机上的公钥与客户端上的公钥匹配。 我知道,似乎是愚蠢的,但是我之前搞砸了。 我通常只是做一个快速检查,第一个和最后~20个字符匹配,没有空格。
确认在主机上的/etc/ssh/sshd.conf有以下内容:
RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile %h/.ssh/authorized_keys
使两个机器上的.ssh/目录及其内容组成为与用户相同的组。
chown username:username -R ~/.ssh/
尝试通过要求密钥使用login
ssh -i .ssh/id_rsa.pub username@servername