sshpass 免密码进行文件复制的方法

1. 部分centos8 没有安装 sshpass 需要先安装 sshpass

yum install sshpass

2. 需要增加一个配置文件, 避免因为 stickhost 检查 造成命令失效

cat  > ~/.ssh/config  <<EOF
UserKnownHostsFile
/dev/null
ConnectTimeout
15
StrictHostKeyChecking no
EOF

注意 这个配置节.. 第二个EOF 的F 后面 一定不能有空格.. 

3. 然后就可以执行相关的命令了:

比如我要同步一个文件夹:

sshpass -p Test1127?! rsync -rpt /deploy/ root@10.110.82.205:/deploy/ --delete

#注意 两个目录一定要带 右侧的斜线 不然就容易出问题.

就可以了. 

删除也能够同步实现.

4. 为了简单起见可以将 这一段设置成一个 alias 应该就能直接用了. 

sshpass -p Test1127?!

 5. 可以修改host 文件 然后批量的 进行文件覆盖的操作

sshpass -p Test1127?! rsync -rpt --exclude={1,4} /rsync/$fi/    root@fi:/rsync/$fi/ --delete

 6. 相应的执行自定义命令的方法为:

sshpass -p Test1127?! ssh root@GS166 "/deploy/startup" >/dev/null
原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/13595966.html