我遵循了无密码登录的指南:
# Generate Key
ssh-keygen
#Append Key
cat ~/.ssh/id_rsa.pub | ssh user@remotehost 'cat >> ~/.ssh/authorized_keys'
#login
ssh [email protected]
... 我打开了authorized_keys以确保密钥已添加,但我仍然需要输入密码才能登录。
我甚至尝试复制ssh-copy-id
并且密钥已成功添加,但它仍然要求输入密码。
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
我究竟做错了什么?
答案1
开启remotehost
,尝试
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys
编辑:我发现解决大多数这些问题的快速方法是运行第二个非分离的、sshd
在远程服务器上的另一个端口上的日志记录,并连接到该端口。
在服务器上:/usr/sbin/sshd -d -p 2222
在客户端:ssh remotehost -p 2222
remotehost
然后仔细查看非分离 sshd 的 STDOUT。您可能需要在防火墙上打开一个入站端口;在本例中为 2222。
答案2
更改 .ssh 目录的权限
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys
答案3
SSH 相当简单,因此假设您没有进行任何配置更改,那么就没有太多需要排除故障的地方。
您是否能够使用您的客户端通过 SSH 和公钥登录到任何机器?
直观地验证主机上的公钥是否与客户端上的公钥匹配。我知道这听起来很蠢,但我以前也搞砸过。我通常只是快速检查一下前 20 个字符和后 20 个字符是否匹配,并且没有空格。
验证主机上是否/etc/ssh/sshd.conf
具有以下内容:
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
使目录及其内容的组.ssh/
与两台机器上的用户属于同一组。
chown username:username -R ~/.ssh/
尝试使用密钥登录
ssh -i .ssh/id_rsa.pub username@servername