sftp
別のサーバーにファイルを送信するためにbashにスクリプトを作成しています。 SSHキーと必要なパスワードがあります。変数を試しましたが、うまくSSH_ASKPASS
いきません。
DISPLAY=: SSH_ASKPASS=/root/.ssh/ask.sh setsid ssh-add ~/.ssh/bl_test
Enter passphrase for /root/.ssh/bl_test:
それは動作しません。私も試しました
echo foo | SSH_ASKPASS=/root/.ssh/ask.sh DISPLAY= ssh-add ~/.ssh/bl_test
これは私を実行するループを生成しますask.sh
。
スクリプトで設定したDISPLAY=:
起動ssh_agent評価を設定しましたが、ssh-agent -s
何も機能しません。SSH_ASKPASS=~/.ssh/ask.sh
AWS2 LinuxでSSH_ASKPASSを動作させるには、ソフトウェアをロードする必要がありますか?
助けてください。
ありがとう
答え1
ssh-agent はパスワードを保存できないため、ssh-agent と Expect コマンドを一緒に使用できます。
#!/usr/bin/expect -f
# Variables
set PRIVATE_KEY_PATH "key.key"
set PASSPHRASE "passpass"
# start ssh-agent
eval spawn ssh-agent
# add your private key to ssh-agent
spawn ssh-add $PRIVATE_KEY_PATH
# wait input of passphrase
expect "Enter passphrase for $PRIVATE_KEY_PATH:"
# send the passphrase
send "$PASSPHRASE\r"
# wait end of ssh-add
expect eof