ssh自动连接 (密钥对),同时ssh控制多台主机,两台交互式控制

    技术2022-05-18  8

     

    为了自动连接ssh,查了很多资料,最后使用了expect,虽然解决问题,但是由于电脑是自动获取ip地址,所以当ip地址变过之后,脚本需要重新设置,很麻烦。现在无意中发现了更好的方法,其实是ssh已经有自动连接功能:在客户端形成一对密钥,私钥保存在默认地方,公钥发送到服务端,保存在指定文件下,就可以形成密钥对,不管自动获取ip地址的两台电脑如何变换ip,都可以通过密钥来确定身份,安全又方便。

     

     ssh 自动连接

    主机IP172.20.10.118

    远程主机IP172.20.10.971)在本地主机生成密钥对ssh-keygen -t rsa这个命令生成一个密钥对:id_rsa(私钥文件)和id_rsa.pub(公钥文件)。默认被保存在~/.ssh/目录下。2) 将公钥添加到远程主机的 authorized_keys 文件中将文件上传到远程主机中scp ~/.ssh/id_rsa.pub root@172.20.10.97:/rootSSH到登陆到远程主机,将公钥追加到 authorized_keys 文件中cat /root/id_rsa.pub >> /root/.ssh/authorized_keys3) 重启 open-ssh 服务/etc/init.d/ssh restart4) 测试[root@hostli .ssh]# ssh root@172.20.10.97Last login: Tue Mar 22 10:19:49 2011 from 172.20.10.97[root@localhost ~]#成功!!

     

     

     

    Ssh同时连接多台服务器

     

    同样,在上面的例子中,由于密钥对不是针对某一个ip地址的,所以生成的密钥对可以重复使用:例子: 远程主机C IP172.20.10.38

     

    直接运行2) 将公钥添加到远程主机的 authorized_keys 文件中将文件上传到远程主机中scp ~/.ssh/id_rsa.pub root@172.20.10.38:/rootSSH到登陆到远程主机,将公钥追加到 authorized_keys 文件中cat /root/id_rsa.pub >> /root/.ssh/authorized_keys3) 重启 open-ssh 服务/etc/init.d/ssh restart

    4) 测试

     [root@localhost work]# ping 172.20.10.97PING 172.20.10.97 (172.20.10.97) 56(84) bytes of data.64 bytes from 172.20.10.97: icmp_seq=2 ttl=64 time=0.586 ms64 bytes from 172.20.10.97: icmp_seq=4 ttl=64 time=0.557 ms64 bytes from 172.20.10.97: icmp_seq=5 ttl=64 time=0.555 ms^C--- 172.20.10.97 ping statistics ---5 packets transmitted, 3 received, 40% packet loss, time 4726msrtt min/avg/max/mdev = 0.555/0.566/0.586/0.014 ms[root@localhost work]# ssh root@172.20.10.97[root@FriendlyARM /root]# exitConnection to 172.20.10.97 closed.[root@localhost work]# ssh root@172.20.10.38Last login: Thu Mar 24 14:11:51 2011 from 172.20.10.38[root@localhost ~]# exit

     

     

    Ssh交互式远程控制:

    如果两台主机AB,根据以上方法我们可以在B端远程控制A,如果反过来想要在A端远程控制B,则需要同样的方法:

    1) A本地主机生成密钥对2) 将公钥添加到远程主机B authorized_keys 文件中3) 重启A主机 open-ssh 服务/etc/init.d/ssh restart

     

     

     


    最新回复(0)