2012/03/18

【Ubuntu】 expectとシェルスクリプトで、SSH接続を自動化したよw

以前にUbuntuからFreeBSDへSSH接続する方法を習得したのですが、
毎回接続する度に端末を開いてパスワードを手入力するのが手間だなぁ・・と感じるようになってきました(;´∀`)

そこで、上図のようなシェルスクリプトファイルを作成して、これをダブルクリックするだけで接続出来るようにしました(`・ω・´)

まず、expectをインストール
[Ubuntuソフトウェアセンター]の検索Boxに[expect]と入力し、一番上の項目を[インストール]します。
このソフトが、コマンドラインの自動化をやってくれる凄い子ですww
シェルスクリプトを作成
expectのインストールが終わったら、geditなどお好みのエディタで以下のようなシェルスクリプトを書きます。
USER=(ssh接続用の、user名を入力します)
PASS=(ssh接続用の、passwordを入力します)
HOST=(ssh接続先の、Hostnameを入力します)

expect -c "
set timeout -1
spawn ssh $USER@$HOST
expect \"Enter passphrase for key\"
send \"$PASS\n\"
interact
"
例えば『t2wonderland.co.jp』という名前のホストに、ユーザー名『Homura』、パスワード『SoulJem』でログインする場合、
こんな感じになります(`・ω・´) このファイルにお好みの名前をつけて、拡張子『sh』で保存します。
shファイルの実行設定
作成したshファイルを右クリックして、[プロパティ]を表示させます。
[アクセス権]のタブページを開いて、[プログラムとして実行可能]をチェックONにします。

この設定により、shファイルをダブルクリックした際に上図のような確認画面が表示されて
このまま実行するのかエディタで開くのかが選択出来るようにまります☆

[端末内で実行する]を選ぶと、自動的に端末が起動してSSH接続が行われます(`・ω・´) ウッヒョーw
参考記事
もっと詳しい解説や複雑な自動化処理などは、以下のページを参照して下さい(*´д`*)b

0 件のコメント: