linux中ssh无密码登陆的实现

 

假设有三台机器:192.168.1.218和192.168.1.32和192.168.1.246
现在需要在机器192.168.1.218上不需要密码就可以ssh登陆到192.168.1.32和192.168.1.246
为方便起见我们假设用root身份登陆。
步骤:

(一、)解决ssh登陆

     分别在192.168.1.32和192.168.1.246上的/etc/hosts.allow文件中加入一行
      sshd : 192.168.1.218: allow

(二、)解决无需密码输入

(1)在机器192.168.1.218、192.168.1.32、192.168.1.246上都运行ssh-keygen -t rsa默认生成的id_rsa.pub和id_rsa文件放在/root/.ssh/中。
(2)在192.168.1.218上用cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys建立密匙文件authorized_keys,输入ssh localhost查看配置是否成功。
(3)在192.168.1.218上用scp  /root/.ssh/authorized_keys 将密匙文件authorized_keys复制到192.168.1.32中。输入ssh 192.168.1.32查看配置是否成功。
(4)在192.168.1.218上用scp  /root/.ssh/authorized_keys 将将密匙文件authorized_keys复制到192.168.1.246中。输入ssh 192.168.1.246查看配置是否成功。

注:

在ssh登陆的设置过程中可能会出现类似于下面的错误
Address 192.168.1.32 maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!
这是因为我们在A机器中登陆B机器,A机器需要知道B机器的机器名(B机器名的获取方法:在B机器中运行uname -a 第二个字段即是),这个过程叫做机器名解析。我们可以在A机器的/etc/hosts文件中将B机器的文件名加入,这样在机器名解析的时候就能得到B机器的机器名了。比如:
    192.168.1.32    bj-adws-32
如果还是不起作用,则我们可以在A机器中关闭机器名解析:编辑/etc/ssh/ssh_conf 将GSSAPIAuthentication选项的值设置为no就可以了.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值