Quantcast
Channel: Bashタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 2811

パスワード認証のサーバでSSH接続を自動化する方法

$
0
0
遠隔サーバにてコマンドを自動実行するにあたり必要になったのでメモ connect.sh #!/bin/bash # 接続先情報 SSH_USER=work SSH_PASS=hoge SSH_HOST=localhost REMOTE_CMD=$1 # 後述のSSH_ASKPASSで設定したプログラム(本ファイル自身)が返す内容 if [ -n "$PASSWORD" ]; then cat <<< "$PASSWORD" exit 0 fi # SSH_ASKPASSで呼ばれるシェルにパスワードを渡すために変数を設定 export PASSWORD=$SSH_PASS # SSH_ASKPASSに本ファイルを設定 export SSH_ASKPASS=$0 # ダミーを設定 export DISPLAY=dummy:0 # SSH接続 & リモートコマンド実行 RET=`exec setsid ssh $SSH_USER@$SSH_HOST $REMOTE_CMD` echo $RET shellで実行 $ ./connect.sh "date" crontabで実行 chmod +x connect.sh */1 * * * * /home/hoge/connect.sh "date" >> /home/hoge/resalt.log 活用 command.sh /home/work/connect.sh 'date' >> /home/work/date.log /home/work/connect.sh 'ls -la |grep "data.log"' >> /home/work/file.log 備考 ・expectコマンドは、バックグラウンドで実行されるような場合には利用できない(cronなど) ・このような場合にはssh_askpassを利用する 参考 https://qiita.com/wadahiro/items/977e4f820b4451a2e5e0

Viewing all articles
Browse latest Browse all 2811

Trending Articles