使用 RCP 和 Expect 的无密码文件传输

Password-less File transfer using RCP and Expect

我需要将文件从一台服务器传输到另一台服务器。我使用 RCP 命令来执行相同的操作并且工作正常。请在下面找到代码:

rcp tst.txt usrname@hostname:/home/username/destination_folder

我尝试使用 Expect 命令自动执行相同的操作,因此创建了下面提到的 shell 脚本:

#!/bin/bash
/usr/bin/expect -d<<EOD
spawn rcp tst.txt usrname@hostname:/home/username/destination_folder
expect "*userid@hostname's password:*"
send "mypassword\n"
EOD

我在执行 shell 脚本时没有收到任何错误,但文件没有传输。有人可以帮我找出问题所在吗?

我尝试过通过密钥生成进行无密码传输,但没有成功,所以我正在尝试 RCP 方法。

提前致谢, 维杰

发送密码后,等待rcp完成,期待eof.

send "mypassword\r"
expect eof

如果没有密码,那么在生成 rcp 之后,预计 eof