yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。

この記事は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}''