ssh跳转无密码登录或执行命令

我们在使用linux开发过程中,经常需要在不同服务器间进行跳转,通过ssh,每次都需要输入密码,比较繁琐,今天从网上找了相关的方法,但是实验过程中发现还是有些问题,特将一些细节整理如下:

比如我有机器192.168.1.100 和192.168.1.200两台服务器,我想从100登录到200中利用ssh不输入密码,所以我需要进行如下的步骤

  1. 首先在ip为100的机器上执行ssh-keygen 命令,一路回车,这样,就在当前用户目录下的.ssh文件夹下生成了两个文件id_rsa和id_rsa.pub文件

  2. 将id_rsa.pub利用scp命令传送到200机器上,,如scp id_rsa.pub root@192.168.1.200:/root/.ssh/100.put

如果在200的/root/.ssh/目录下有 authorized_keys 这个文件的话,则直接利用cat命令将100.put文件内容添加到 authorized_keys后, 命令如下:

1
cat 100.pub >> authorized_keys

注意,不能利用手工的拷贝,否则会导致失败,只能用cat >> (这点让我尝试了很多次)

  1. 修改authorized_keys 的权限为600,如下:chmod 600 authorized_keys

然后删除100.pub就可以了,大功告成,赶紧到100的机器上试试 ssh root@192.168.1.200 ,看看直接进去了吧,不用再输入密码了!


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!