ssh自動ログインスクリプト

公開日:2016-08-14 更新日:2020-10-02

Shell script

t f B! P L

最近、色々なサーバにsshする機会が増えたので、sshログインはshell script化しました。

■ファイル構造

$ tree
.
├── auto_login.sh #メインのファイル
├── yoshiisland1.sh #yoshiisland1サーバ用のファイル
└── yoshiisland2.sh #yoshiisland2サーバ用のファイル
[/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}''

About me

ゆかき(♀)

アラサー駆け出しインフラエンジニア
ど文系営業からSEへ転身し日々奮闘している人

一児の母

#AP応用情報 #HTML5Lv1 #第2種電気工事士 #DCP(Data Center Practitioner) #LPIC Lv2 #VCP6.5 #CCNP #Oracle Bronze #HSKLv5 #TOEIC860

Line stamp

僭越ながら販売中

Green cat & Orange cat

Amazon