天天看点

ssh免登录

由于更新代码时,要同时更新N多台机器,如果一台一台的登录上去操作相当的麻烦,而且都是一些重复性的工作,于是就想到用一个shell来做,单机的.sh文件已经做好了,但如果想通过一台机器来调用另外一台机器里的.sh脚本的话, 就必须要登录上去才行,于是就想到了这个ssh免登录的,百度一下ssh免登录都有一大堆的教程,具体就是这几步:

1, 先确认A与B这两台机器上都已经安装了openssh,如果没有安装请安装就可以了,centos里用yum install openssh来安装就可以了

2,在/root目录下看看有没有.ssh这个目录,注意前面有一个.,如果没有则新建一个mkdir -p .ssh

3,进行到这个.ssh目录下,输入

ssh-keygen -t rsa -P ''
           

则会在该目录下生成两个文件,一个是id_rsa, id_rsa.put,put的那个是公钥,另外一个当然就是私钥了。

4,登录到B机器上,也得先确定是否有安装openssh,如果没有则重复1,2这两步

5,再回到A机器上,在.ssh目录下输入:

scp /root/.ssh/id_rsa.pub [email protected]:/root/.ssh/id_rsa.pub
           

, 一连串提示后则输入B机器的登录密码,完成后则可以在B机器下的/root/.ssh目录看到有id_rsa.pub这个文件

6,回到B机器上,在.ssh目录下输入:

将id_rsa.pub追加到authorized_keys文件最后,再将该文件改为600的权限

7,再回到A机器下输入:

ssh [email protected](B机器的IP地址)
           

即可登录

如果需要在登录后执行某些命令,建议可将这些命令做成一个.sh文件,然后输入

ssh [email protected] 'sh /mnt/xxx.sh'
           

这个xxx.sh就是你要执行的操作命令

其实这个SSH登录是相当的简单的,其原理就是通过私/公钥来进行匹配,因为在拥有私钥的那一个机器上,还会有一个know_host这样的文件,应该就是根据这个已经知host与公私钥对应,如果匹配即登录成功。

继续阅读