MacだとTeraTermがないので、.ttlファイルを渡されても困る、、、
中を開けばログインユーザ/IPアドレス/パスワードは書かれてるけど、毎回sshコマンド打つのしんどい、、、
サードパーティーのソフトとかダウンロードしてくればいいんだろうけど、探すのめんどい、、、
自分でShellScript書こう、、、
##基本Ver(パスワード認証方式)
base_pswd.sh
#!/bin/sh
USERNAME="hoge"
IPADRS="xxx.xxx.xxx.xxx"
PSWD="8MojiIjo!Random!"
expect -c "
set timeout 5
spawn ssh ${USERNAME}@${IPADRS}
expect \"password:\"
send \"${PSWD}\n\"
interact
"
変数の値だけ書き換えてやれば使える超基本形。
##基本Ver(公開鍵認証方式)
base_rsa.sh
#!/bin/sh
USERNAME="hoge"
IPADRS="xxx.xxx.xxx.xxx"
PSWD="8MojiIjo!Random!"
KEY_PATH="~/.ssh/xxxx_rsa"
expect -c "
set timeout 5
spawn ssh -i ${KEY_PATH} ${USERNAME}@${IPADRS}
expect \"${KEY_PATH}\"
send \"${PSWD}\n\"
interact
"
公開鍵のパスを指定して、パスコードを入力させる基本形。
##踏み台経由Ver
humihumi.sh
#!/bin/sh
USERNAME="hoge"
IPADRS="xxx.xxx.xxx.xxx"
PSWD="8MojiIjo!Random!"
HMDI_USERNAME="humidai_hoge"
HMDI_IPADRS="yyy.yyy.yyy.yyy"
HMDI_PSWD="8MojiIjo!Random!"
expect -c "
set timeout 5
spawn ssh -t ${HMDI_USERNAME}@${HMDI_IPADRS} \"ssh ${USERNAME}@${IPADRS}\"
expect \"password:\"
send \"${HMDI_PSWD}\n\"
expect \"password:\"
send \"${PSWD}\n\"
interact
"
ssh
コマンドに-t
オプションを付けてやると、2段階でsshが出来る。
##応用Ver(引数次第で、踏み台にもその先にもいける)
humihumi_sonosaki.sh
#!/bin/sh
USERNAME="hoge"
IPADRS="xxx.xxx.xxx.xxx"
PSWD="8MojiIjo!Random!"
HMDI_USERNAME="humidai_hoge"
HMDI_IPADRS="yyy.yyy.yyy.yyy"
HMDI_PSWD="8MojiIjo!Random!"
case "$1" in
humidai)
expect -c "
set timeout 5
spawn ssh ${HMDI_USERNAME}@${HMDI_IPADRS}
expect \"password:\"
send \"${HMDI_PSWD}\n\"
interact
"
;;
sonosaki)
expect -c "
set timeout 5
spawn ssh -t ${HMDI_USERNAME}@${HMDI_IPADRS} \"ssh ${USERNAME}@${IPADRS}\"
expect \"password:\"
send \"${HMDI_PSWD}\n\"
expect \"password:\"
send \"${PSWD}\n\"
interact
"
;;
*)
echo "Usage: humihumi_sonosaki.sh {humidai|sonosaki}"
;;
esac
引数に応じて分岐させるパターン。
その先がWeb/App/Dbなど複数になっても、この辺だけ変えれば1ファイルで済む。