`
mr_lonely_hp
  • 浏览: 89406 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
社区版块
存档分类
最新评论

linux下SSH两机器无需登录可访问

阅读更多

如何做到两台Linux机器之间不使用密码即可通过SSH远程登录。
    有两台linux机器A(192.168.0.195),B(192.168.1.210),想通过A机器ssh的方式登录到B机器,且不必输入密码。

原理很简单,rsa公私钥机制,创建一对密钥(包含公钥和私钥),将公钥放入远程需要登录到的那个机器B上,自己保留私钥。通过A登录远程机器B时,对方验证方法为:使用公钥加密数据,谁能够解密这段数据则证明谁手里有私钥,即谁有权限登录。

下面的例子假设:A和B都是通过root用户进行登录,其实通过其他用户登录方法相同。

方法如下:

1. 在A机器上的/root/.ssh下执行 :ssh-keygen -t rsa

命令提示输入内容时,都不输入,直接回车。这个命令会产生一对公钥和私钥,名字为id_rsa(访问权限为600)(私钥) 和 id_rsa.pub(公钥)

注意:在产生密钥时,本例子没有设置密码,提示输入passpphrase时,直接回车,没有设置密码。如果设置了密码,可以使用ssh-agent代理,帮实现自动输入passpphrase,这种方式我没有进行实际试验。

2.  将公钥也就是id_rsa.pub发送到远程机器上,并修改名称为authorized_keys:

scp /root/.ssh/id_rsa.pub  root@192.168.1.210:/root/.ssh/

mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys

当然也可以直接采用scp  /root/.ssh/id_rsa.pub 192.168.1.210:/root/.ssh/authorized_keys

在将公钥拷贝到B机器时,可能会显示如下的提示信息,这些信息可以不用考虑,直接Yes就行了:

The authenticity of host '192.168.0.195 (192.168.0.195)' can't be established.
RSA key fingerprint is 5a:6f:67:d8:4e:0c:3c:20:1a:7f:3e:5b:d0:6e:5d:34.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.195' (RSA) to the list of known hosts.
Address 192.168.0.195 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!

只需要在A机器的/etc/hosts中,增加B机器的IP和机器名:192.168.1.210   B 即可消除上述的信息。

B机器上,/root/.ssh/authorized_key的访问权限为644(缺省应该就是这个权限)。

修改B机器的/etc/ssh/ssh_config,将PermitRootLogin 设置为yes,不需要重新启动sshd。(因为此例子是采用root进行登录的)

成功了,在A机器上,用root用户远程登录B机器:ssh 192.168.1.210

如果不是用root用户远程登录B机器:ssh –l 

user1 192.168.1.210。这种情况下,公钥就应该是放在user1这个用户的.ssh/下了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics