s-blog

CentOS Shell scp 自动输入密码

ssssmy · 2026-06-05 · 1 min · CentOS

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