我用密码、密码和私钥编写了脚本 scp/sftp ,它可以与winscp一起使用,但不能在我的linux shell中使用

我用密码、密码和私钥编写了脚本 scp/sftp ,它可以与winscp一起使用,但不能在我的linux shell中使用
#!/usr/bin/expect -f
spawn /usr/bin/scp  -i "/pkg/scripts/myppk.ppk"  -P 11111    [email protected]:/OUT/mycsc.csv  /manpkg
expect {
expect "*phrase*" {
    send "mypassphrase\r"
    
}
expect "*sword.*" {
    send "mypassword\r"
}
}
interact

答案1

您实际上并没有告诉我们出了什么问题,您遇到了什么错误或任何事情,所以这只是一个猜测。我敢打赌问题是您\r出于某种原因发送的密码和密码末尾带有 。这......对于任何现代系统来说都没有任何意义。过去只有老式 Mac 才使用 .\r作为行尾字符,现代 Mac 和所有其他 *nix 系统都\n使用\r\n.

要在 *nix 系统上执行此操作,您需要将 替换\r\n

#!/usr/bin/expect -f
spawn /usr/bin/scp  -i "/pkg/scripts/myppk.ppk"  -P 11111    [email protected]:/OUT/mycsc.csv  /manpkg
expect {
expect "*phrase*" {
    send "mypassphrase\n"
    
}
expect "*sword.*" {
    send "mypassword\n"
}
}
interact

如果这不能解决您的问题,请编辑您的问题并解释运行它时实际发生的情况。

相关内容