CentOS Shell scp 自动输入密码
scp 跨机拷贝时免交互输入密码的两种方式。
方法一:SSH 公私钥认证(推荐)
配置免密登录后即可直接 scp,无需密码。
方法二:expect 自动应答
expect 用于与交互式程序自动对话,需先安装:
yum -y install expect expect-devel
脚本示例:
#!/bin/bash
expect -c "
set timeout 1200; # 设置拷贝超时(秒),根据目录大小决定
spawn /usr/bin/scp -r <远程IP>:/work/backup/db_back/ /work/dbback/
expect {
\"*yes/no*\" {send \"yes\r\"; exp_continue}
\"*password*\" {send \"<远程密码>\r\";}
}
expect eof;"
不设置 timeout 会自动退出,所以必须设置;或用 default 字段设置 expect 超时/退出时的动作。
原文链接:https://www.ssssmy.com/notes/centos-shell-scp-zi-dong-shu-ru-mi-ma