この記事は3年以上前に書かれた記事で内容が古い可能性があります
ssh自動ログインスクリプト
2016-08-14
最近、色々なサーバにsshする機会が増えたので、sshログインはshell script化しました。
■ファイル構造
$ tree . ├── auto_login.sh #メインのファイル ├── yoshiisland1.sh #yoshiisland1サーバ用のファイル └── yoshiisland2.sh #yoshiisland2サーバ用のファイル [/bash] ■実行 実行する時は、それぞれのサーバ用の変数が格納されたファイルを実行 [code language=bash] $ . yoshiisland1.sh
■中身
★auto_login.sh
#!/bin/sh auto_ssh() { host=$1 id=$2 pass=$3 expect -c " set timeout 10 spawn ssh ${id}@${host} #expect \"Are you sure you want to continue connecting (yes/no)?\" #send \"yes\n\" expect \"${id}@${host}'s password:\" send \"$pass\n\" expect \"# \" send \"cd /opt/work/ ; ls\n\" interact " }
※私はすでに鍵交換をしているので、Are you sure~のくだりはコメントアウトしております。
※「send \”cd /opt/work/ ; ls\n\”」で、ログインした後、/opt/work/へ移動して、lsを叩くようにしています。
★yoshiisland1.sh
#!/bin/sh # 汎用自動sshスクリプトの読み込み . /hogehoge/auto_login.sh # 自動をグインを実行 auto_ssh '10.10.10.10' 'root' 'password'
パスワードのベタ書きがイヤであれば対話形式でパスワードだけ入力させても良いかもです。
#!/bin/sh echo -n "パスワードを入力してください。>" ;read -s PASS # 汎用自動sshスクリプトの読み込み . /hogehoge/auto_login.sh # 自動をグインを実行 auto_ssh '10.10.10.10' 'root' ''${PASS}''