如何为 SCP 或 SFTP 自动键入密码以使其自动化?

Huj*_*let 3 scp centos expect

我有脚本,我将scp命令备份到其他服务器。但是当它运行时,它要求输入密码。有没有办法自动化这个?我正在使用 CentOS 5.6。我在使用spawn命令时很少看到他们使用命令的指南,它说-bash: spawn: command not found

#!/usr/bin/expect -f

# connect via scp
spawn scp "user@example.com:/home/santhosh/file.dmp" /u01/dumps/file.dmp
#######################
expect {
-re ".*es.*o.*" {
exp_send "yes\r"
exp_continue
}
-re ".*sword.*" {
exp_send "PASSWORD\r"
}
}
interact
Run Code Online (Sandbox Code Playgroud)

Sac*_*kar 7

使用带有空密码短语的基于密钥的身份验证。这不会要求输入密码。

请按照以下步骤操作。

  • 您不需要在目标服务器上安装任何东西 - 只需复制文件(...使用 scp 本身)。使用 `ssh-copy-id` 命令复制密钥文件 - 它只是使用您的公钥创建一个文件 `~/.ssh/authorized_keys`。一切都应该从那里自动工作。 (3认同)