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
ユーザー名、パスワード、および宛先を使用して、以下の 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
それ以外の場合は、expect を使用してパスワードを送信してください。警告! パスワードは ps を使用して表示できるため、このソリューションはまったく安全ではありません。