我想在 HP-UX 中创建一个脚本来使用密码在 sftp 中发送。我有这个命令
sftp -o PasswordAuthentication=
但如果我之后回答“是”或“否”,我就会遇到“主机密钥验证失败”的问题
答案1
如果您socat
方便的话,您可以使用手册中的这个示例。
(sleep 5; echo PASSWORD; sleep 5; echo ls; sleep 1) |
socat - EXEC:'ssh -l user server',pty,setsid,ctty
EXEC’utes an ssh session to server. Uses a pty for communication
between socat and ssh, makes it ssh’s controlling tty
(ctty), and makes this pty the owner of a new process group
(setsid), so ssh accepts the password from socat.
答案2
最好使用公钥/私钥身份验证,但如果您仍然想在纯文本脚本中使用密码,我会使用lftp
.这是一个很棒的客户端,允许 ftp、sftp、ftps 连接,您只需要使用“此处文档”即可完成交易:
lftp sftp://your.destination.sftp -u yourUser,YourPassword << fin
get yourfile
bye
fin
答案3
您可以使用用户名、密码和 destip 尝试下面的 sftp 脚本。
#!/usr/bin/expect
spawn sftp username@destip
expect "username@destip's password:"
send "passwd\n"
expect "sftp>"
send "get filename\n"
expect "sftp>"
send "bye\n"
答案4
Sftp 可以在没有密码的情况下使用
pubkey auth = very safe strong encryption
kerberos = need server,encryption is not strong
否则使用期望发送密码,警告!使用 ps 可以看到该通行证,因此该解决方案完全不安全。