Linux创建SSH信任关系
Linux服务器创建信任关系可以解决远程执行命令、远程传输文件多次手工输入的麻烦。可以实现环境一键打包备份。
测试环境
SuSE
手工创建
假设服务器A与B间要建立信任关系。用户想从服务器A免密码登录服务器B执行命令或者上传文件到服务器B。
1、登录服务器A,执行ssh-keygen -t rsa。按照提示默认操作即可(按enter)。在~/.ssh目录下会生成私钥文件id_rsa和公钥文件id_rsa.pub。
2、scp id_rsa.pub ${user}@${serverB}:~。将公钥文件id_rsa.pub上传到服务器B的的服务器家目录下。
3、登录服务器B,执行cat id_rsa.pub >> ~/.ssh/authorized_keys。将公钥文件内容添加到authorized_keys文件中。如果没有.ssh目录,可以手工创建。
4、登录服务器A,执行ssh ${user}@${serverB}测试,如果不出现提示密码输入直接登录成功,表示ssh信任关系建立成功。后续在服务器用户${user}下可以免密码操作。
设计思路
1、利用expect命令,参考手工创建步骤完成程序设计
使用方法
1、下载代码:createSSH.sh,上传到任一用户的指定目录下。
2、执行chmod +x createSSH.sh,赋可执行权限。
3、执行如命令:./createSSH oracle@192.168.0.1 oracle 。表示为./createSSH 远程用户@远程服务器IP 远程用户密码