当我跑步时
ravbholua@ravbholua-Aspire-5315:~$ rlogin 109.202.101.166
它提示我输入密码,如下所示:
ravbholua@ravbholua-Aspire-5315:~$ rlogin 109.202.101.166
[email protected]'s password:
为了实现无密码访问,我在远程计算机 (ravi.com) 中创建了一个文件 /etc/hosts.equiv,如下所示:
root@ravi:/etc# cat hosts.equiv
localhost
42.110.54.211
root@ravi:/etc#
但每当我运行上述命令登录到这台远程计算机时,它仍然要求输入密码。
此外,我还在远程计算机的主目录中的相同帐户中创建了 .rhosts 文件。如下:
ravbholua@ravi:~$ cat .rhosts
localhost
42.110.54.211
ravbholua@ravi:~$
我无法进行无密码访问可能是什么问题。
需要注意的重要一点:要知道我的互联网 IP 地址是什么,我从以下两个网站获得(两者都提供了相同的 IP 地址)
http://www.ipchicken.com/
http://whatismyip.org/
您可以参考下面的链接,我曾提出相同的问题,但未能得到解决。 无法免密码访问远程机器
编辑:我跑了:
ravbholua@ravbholua-Aspire-5315:~$ sudo scp ~/.ssh/id_rsa.pub rs:.ssh/authorized_keys
与没有 sudo 一样,它会显示消息:权限被拒绝。然后我都尝试了
sudo ssh rs
和
ssh rs
仍然提示我输入密码。输入密码后,我进入了远程服务器,发现 /root/.ssh 中传输的文件如前所示。
root@ravi:~/.ssh# ls
authorized_keys known_hosts
root@ravi:~/.ssh#
请注意 rs 是我的远程服务器的别名。
答案1
您还可以使用SSH配置远程计算机的无密码登录。
它只是(在计算机a上):
$ ssh-keygen # use an empty password!
$ scp ~/.ssh/id_rsa.pub computer_b:.ssh/authorized_keys
就是这样。
现在你可以做一个
$ ssh computer_b
无需输入密码。
您可以选择配置以下内容:
- Computer_b 的主机别名,例如能够输入
ssh alias
- 将公钥身份验证设置为该主机/别名的默认值
- 仅允许公钥身份验证(对于computer_b 上的 sshd)
除非你不能使用ssh,否则设置起来似乎比rlogin方便得多。
故障排除
确保具有~/.ssh
正确的权限(在两个系统上) - 即只能由您的用户访问 - 否则 ssh 会忽略它。这意味着仅rwx------
适用于目录和rw-------
文件。使用ls -l
和ls -ld
来验证这一点。
确保遥控器~/.ssh/authorized_keys
包含正确的公钥。验证通过:
$ ssh computer_b cat '~/.ssh/authorized_keys' # remote
$ cat ~/.ssh/id_rsa.pub # local
如果设置不能像这样工作,也许您必须显式配置客户端,即添加如下内容.ssh/config
:
Host computer_b
Hostname some_hostname
User juser
PreferredAuthentications publickey # makes testing easier
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa.pub
-v
对于诊断问题,添加调用也很有用ssh
,例如:
$ ssh -v computer_b