我正在尝试使用带有公钥身份验证的SFTP将一堆文件发送到服务器。如果没有shell提示输入密码,我怎么能这样做呢?
我的脚本看起来像这样:
#!/bin/bash
for f in "$@"
do
sftp USER@HOST << DELIMITER
cd DIR
put $f
quit
DELIMITER
done
答案 0 :(得分:0)
使用ssh-agent
:
#!/bin/bash
eval `ssh-agent`
ssh-add /path/to/your/key
for f in "$@"
do
sftp USER@HOST << DELIMITER
cd DIR
put $f
quit
DELIMITER
done
它会将您的密钥存储在ssh-agent
中,要求输入密码短语,然后将您登录到所有服务器。您也可以在脚本之外执行此操作。