由于更新代码时,要同时更新N多台机器,如果一台一台的登录上去操作相当的麻烦,而且都是一些重复性的工作,于是就想到用一个shell来做,单机的.sh文件已经做好了,但如果想通过一台机器来调用另外一台机器里的.sh脚本的话, 就必须要登录上去才行,于是就想到了这个ssh免登录的,百度一下ssh免登录都有一大堆的教程,具体就是这几步:
1, 先确认A与B这两台机器上都已经安装了openssh,如果没有安装请安装就可以了,centos里用yum install openssh来安装就可以了
2,在/root目录下看看有没有.ssh这个目录,注意前面有一个.,如果没有则新建一个mkdir -p .ssh
3,进行到这个.ssh目录下,输入
则会在该目录下生成两个文件,一个是id_rsa, id_rsa.put,put的那个是公钥,另外一个当然就是私钥了。
4,登录到B机器上,也得先确定是否有安装openssh,如果没有则重复1,2这两步
5,再回到A机器上,在.ssh目录下输入:
6,回到B机器上,在.ssh目录下输入:
将id_rsa.pub追加到authorized_keys文件最后,再将该文件改为600的权限
7,再回到A机器下输入:
如果需要在登录后执行某些命令,建议可将这些命令做成一个.sh文件,然后输入
这个xxx.sh就是你要执行的操作命令
其实这个SSH登录是相当的简单的,其原理就是通过私/公钥来进行匹配,因为在拥有私钥的那一个机器上,还会有一个know_host这样的文件,应该就是根据这个已经知host与公私钥对应,如果匹配即登录成功。
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 root@xxx.xxx.xx.xx:/root/.ssh/id_rsa.pub
, 一连串提示后则输入B机器的登录密码,完成后则可以在B机器下的/root/.ssh目录看到有id_rsa.pub这个文件
6,回到B机器上,在.ssh目录下输入:
cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
将id_rsa.pub追加到authorized_keys文件最后,再将该文件改为600的权限
7,再回到A机器下输入:
ssh root@xxx.xx.xx(B机器的IP地址)
即可登录
如果需要在登录后执行某些命令,建议可将这些命令做成一个.sh文件,然后输入
ssh root@xxx.xxx.xxx.xxx 'sh /mnt/xxx.sh'
这个xxx.sh就是你要执行的操作命令
其实这个SSH登录是相当的简单的,其原理就是通过私/公钥来进行匹配,因为在拥有私钥的那一个机器上,还会有一个know_host这样的文件,应该就是根据这个已经知host与公私钥对应,如果匹配即登录成功。