2014-10-29

TeraTermマクロにてsshログイン自動化②(RSA公開鍵認証)

前回記事



前回は一番オーソドックスなユーザ名・パスワードを指定してログインするマクロを作成しました。
今回はRSA認証(公開鍵認証)を用いたsshログインマクロを作成してみます。



前提条件


あらかじめログインするサーバ(SSHホスト)側にはSSHクライアントで作成した公開鍵が登録されているものとします。


RSA認証を用いてsshログイン


テキストエディタ等で次のコードを記載し、loginAuth.ttlとします。

loginAuth.ttl の中身

;==================================
; 定数定義

USERNAME = 'xxxxxx'

; 接続サーバの選択
inputbox '接続サーバ名を入力して下さい。\n ※キャンセルは空白にしてOK\n' '接続サーバ入力' 1
varHostAddr = inputstr

; ファイルパスの設定
getdir varPassFile
strconcat varPassFile '\'
strconcat varPassFile 'pass.dat'
getdir varKeyFile
strconcat varKeyFile '\'
strconcat varKeyFile 'id_rsa'

; SSH認証のパスフレーズ取得
getpassword varPassFile 'SSHAUTH_PASS-PHRASE' varPassPhrase

; サーバsshログイン
varConnect = varHostAddr
strconcat varConnect ':22 /ssh /2 /auth=publickey /user='
strconcat varConnect USERNAME
strconcat varConnect ' /passwd='
strconcat varConnect varPassPhrase
strconcat varConnect ' /keyfile='
strconcat varConnect varKeyFile
connect varConnect

;==================================
xxxxxxの部分はログインユーザ名に書き換えてください。

マクロコード説明


  • getpasswordコマンド
初回実行時、ttlマクロファイルと同じフォルダにpass.datというパスワードファイルを作成し、入力されたパスワードを暗号化して保存します。
2回目以降は、pass.datファイルから自動的にパスワードを読み込んで処理しますので完全自動化となります。
'SSHAUTH_PASS-PHRASE'この部分は何でもよいです。パスワードファイルは複数のパスワードを記録できますのでそのラベル名となります。

次回は、SSH認証ファイルを利用した自動ログインし、さらにその先にあるサーバへのログインまでを自動化します。

次回記事