📚
SSH_ASKPASSの使い方について
expectやsshpassを使わずにシェルでSSHパスワード認証を自動化する
の記事はたくさんある
けど、SSH_ASKPASSの中身を分けて、中身まで載ってるサンプル見つけられなかったので。
構成
.
|-- askpass
`-- ssh.sh
askpass
#!/bin/sh
echo "password"
ssh.sh
#!/bin/sh
HOST=[hostname]
USER=[username]
CMD="[command]"
export SSH_ASKPASS=`pwd`/askpass
export DISPLAY=dummy:0
setsid ssh $USER@$HOST $CMD
qiitaのコメントでも触れてる(仕組みはコメントというかmanままなので割愛)方がいますが、
SSH_ASKPASS自体が、execute the programしてくれるので、あえてexecは不要です。
(askpassファイルには実行権限だけ必要。execなので)
実行結果サンプル(OSを表示)
実行元で表示→コマンド経由でリモート先を表示
# cat /etc/system-release
Amazon Linux release 2 (Karoo)
# ./ssh.sh
AlmaLinux release 8.6 (Sky Tiger)
Discussion