Project

General

Profile

踏み台用自動SSHスクリプト

  • 自動でSSHしてくれるスクリプトです。
  • 主に踏み台でSSHしなければならない環境で、大量にSSHする機会がある場合に使用します。
  • 大量作業時によくあるケースとして、共通のパスワードがある前提です。
  • 初めてsshするサーバでのfootprintの保存を自動化しています。
  • ホストの設定や追加に関してはスクリプトを参考に設定して下さい。
    (1ホストあたりhostname1等の2カ所の追記となります。)
  • sshのバージョンやディストリビューションによっては上手く動かないかもしれません。
  • スクリプトの特性上、パスワードが記載されるので取り扱いには注意して下さい!

設定ファイル編集

  • スクリプト本体兼設定ファイルを編集します。
    vi /root/ssh.sh
    ------------------------------------------------------
    #!/bin/sh
    set timeout 1
    set ID
    set PASWD
    set HOSTN
    
    ID=0
    PASWD="共通パスワード" 
    
    echo "SSH LOGIN HELPER" 
    echo "1: hostname1" 
    echo "2: hostname2" 
    echo "3: hostname3" 
    echo "4: hostname4" 
    echo "5: hostname5" 
    echo "6: hostname6" 
    echo "0: or not SELECT : EXIT" 
    echo "> SELECT num [ENTER]" 
    
    read ID
    
    case $ID in
        1) HOSTN="hostname1" ;;
        2) HOSTN="hostname2" ;;
        3) HOSTN="hostname3" ;;
        4) HOSTN="hostname4" ;;
        5) HOSTN="hostname5" ;;
        6) HOSTN="hostname6" ;;
    esac
    
    expect -c " 
        spawn ssh $HOSTN
        expect {
            \"yes/no\" {
                send \"yes \n\" 
                expect \"Password:\" 
                    send \"$PASWD\n\" 
            } \"Password:\" {
                send \"$PASWD\n\" 
            }
        }
    interact
    " 
    exit 0
    
    

動作確認

  • 次のコマンドが正しく実行されるかテストする。
    # sh /root/ssh.sh
    

 

戻る