使用密钥进行 SSH 登录不起作用

使用密钥进行 SSH 登录不起作用

我遵循了无密码登录的指南:

# 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

相关内容