大纲
一、初心
二、sshpass的常用命令(sshpass不可以直接接带特殊字符意义的密码,需要转义或者用小括号,或者指定文件的方式来连接都可以规避这个问题。)
三、成果展示
一、初心
为了将拉取最新源码、混淆编译、将编译好的文件拷贝到远程主机并执行,这一系列操作能够自动化完成,解放劳动力,提升工作效率的,我进行了自动化脚本的编写和验证操作。原本以为这是一个再简单的事情,实际着手时,也遇到不少麻烦。特此做些记录。(这里略去不必要的安装,重点谈谈核心sshpass)
二、sshpass的常用命令
1、直接远程连接某台主机
命令:sshpass -p {远程主机登录密码} ssh root@{远程主机IP}
sshpass -p {远程主机登录密码} ssh root@{远程主机IP} 'w' -o StrictHostChecking=no 免输入
注:若是第一次连接直接用sshpass -p 123456 ssh root@192.168.161.100会连接不上
2、本地执行远程机器的命令:
命令: sshpass -p {远程主机登录密码} ssh root@{远程主机IP} "ethtool eth0"
3、远程连接指定ssh的端口:
命令:sshpass -p {远程主机登录密码} ssh -p {远程主机登录端口} root@{远程主机IP}
注: 当远程主机不是默认的22端口时候
4、从密码文件读取文件内容作为密码去远程连接主机
命令:sshpass -f xxx.txt ssh root@{远程主机IP}
5、从远程主机上拉取文件到本地
命令: sshpass -p {远程主机登录密码} scp root@{远程主机IP}:{拉取文件目录}
6、执行远程主机脚本
命令: sshpass -p {远程主机登录密码} ssh -o StrictHostChecking=no root@{远程主机IP} {./xx.sh}
7、从本地主机拷贝文件到远程主机
命令: sshpass -p {远程主机登录密码} 本地文件目录 root@{远程主机IP}:{远程文件目录}
三、成果展示
svn:checkout svn:xxxxx
混淆编译
sshpass -p xxx ssh -o StrictHostChecking=no root@xxx ./stop.sh
sshpass -p xxx scp /root/xxx/xx.txt root@xxx:/root/xx
sshpass -p xxx ssh -o StrictHostChecking=no root@xxx ./run.sh
参考链接:https://blog.csdn.net/weixin_59663288/article/details/125637009