我正在尝试使用 shell 脚本中的 SCP 传输一些文件,但是远程机器上要求我输入密码。
我可以使用 expect 和 scp 来输入密码吗,这样我就不必一直输入密码了?
答案1
你不需要。使用钥匙反而。
答案2
是的你可以。
#!/usr/bin/bash
/usr/bin/expect <<EOD
spawn /usr/bin/scp -l 200 file.ext user@server://path/on/server/
expect "password:"
send "YourPassword\r"
expect "\r"
send "\r\n"
EOD
答案3
您无法通过 SCP 绕过提示。
您可以使用身份文件来进入而无需密码。您可以通过设置身份密钥来做到这一点。您可以指定身份文件的位置,而不是使用密码提示。如果您需要有关如何设置的信息,请使用给定的链接:https://www.digitalocean.com/community/tutorials/how-to-configure-ssh-key-based-authentication-on-a-linux-server