ssh命令其实用了些日子了,但是感觉长进不大,主要原因是对它不够了解。
我想绝大多数的系统环境我还是使用ssh的方式会多一些,就这样看起来小米加步枪的工作方式,想想远离图形界面工具管理数据库也有好几年了。
今天早上突然想起来有一个同事的工作环境需要我开更高一些的权限,没过多久,我就得到了一个IP列表,这些服务器都是需要开通较高的权限。因为我们使用的都是中控机器去免密码登录,所以我需要给他开通这些服务器的访问权限,看起来工作量还不小。
常规的思路是:
-
拷贝.ssh/id_rsa.pub到目标服务器,比如目标服务器是10.12.1.1,则命令为:
scp .ssh/id_rsa.pub root@10.12.1.1:~
-
然后ssh登录到目标端,执行
cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
-
然后简单查看authorized_keys文件,验证一下是否连接正常
如果是多台服务器,这个操作就显得很繁琐。对于重复性的繁琐操作我很反感,没什么技术含量还耗费时间。所以我就停下来想,还有没有其他更好的方式,使用一个命令就能够搞定最好。
果然还是磨刀不误砍柴工,经过一番摸索和网络的帮助,找到了以下的几种方式。
第一种方式是使用ssh-copy-id来完成,这个是linux字典的命令行工具。具体可以参考sskLinux命令ssh-copy-id (r10笔记第21天)
第二种方式是免脚本传输,直接在远程调用,使用管道的方式
比如
cat ~/.ssh/id_rsa.pub |ssh 10.12.1.1 "cat - >> ~/.ssh/authorized_keys"
第三种方式也是免脚本传输,和上面的命令略有一些差别.
ssh 10.12.1.1 "cat - >> ~/.ssh/authorized_keys" < ~/.ssh/id_rsa.pub
上面三种方式都是经过检验还不错的方法,能简化繁琐重复的工作,本身就是生活质量的提高啊。大家有什么好的建议也希望一并提出来。
之前总结过的几篇关于命令的使用,希望对大家有所帮助。