我目前正在编写一个脚本来通过 SCP 将文件上传到我的服务器。
我有以下几行:
sshpass -p password!% scp -P 1234 ./test.text user@mydyndns:~/test.txt
但每次我尝试验证时都会陷入困境。我可以看到这可能是因为密码的原因。它和示例中一样具有“!”以及其中的“%”。每次我按 Enter 时,我都会看到发送的命令没有两个特殊字符。我尝试用 percet-enconding 替换它们,但没有成功(%25,%21)。
有任何想法吗?
答案1
尝试
1)单引号,
sshpass -p 'password!%' scp -P 1234 ./test.text user@mydyndns:~/test.txt
2)使用其他sshpass方法
文件 :
sshpass -f passwd.txt ...
其中 passwd.txt 包含密码!%
环境变量
sshpass -e ...
其中 SSHPASS 包含您的密码。
3)我认为不使用公钥/私钥是有充分理由的。