Tera Term 鍵認証方式でのSSH自動ログインマクロ


CPI のレンタルサーバーで鍵認証方式での SSH 自動ログインマクロを作ったので残しておきます。

(鍵認証を使わないSSH自動ログインマクロは、以前書いた記事「Tera Termマクロ(SSH自動ログイン)」をご覧ください。)

 

下記の内容を「ホスト名.ttl」などとして保存します。
「ttl」ファイルが、Tera Term に関連付けされていればダブルクリックするだけで自動ログインできるようになります。

username = 'アカウント名'
hostname = 'IPアドレス'
passwdfile = 'C:\Tool\TeraTerm\pass_ホスト名.dat'
userkeyfile = 'C:\Tool\TeraTerm\秘密鍵のファイル名'
portnum = 'ポート番号'

getpassword passwdfile username userpasswd

msg = hostname
strconcat msg ':'
strconcat msg portnum
strconcat msg ' /ssh /2 /auth=publickey /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg userpasswd
strconcat msg ' /keyfile='
strconcat msg userkeyfile

connect msg

3行目のファイル名は、パスフレーズを保存するファイル名です。
お好みに合わせて書き換えてください。
初回ログイン時に、自動でそのファイル名のファイルが作成されます。

3行目と4行目のファイルパスについては、ご自分の環境に合わせて書き換えてください。

このときの注意点としまして、ファイルパスに「半角スペース」が入らないようにしてください。
当初「TeraTerm」というフォルダ名に半角スペースを用いて「Tera Term」としていたところ

SSH2秘密鍵の読み込みに失敗しました
No such file or directory

というエラーが発生し、しばらく原因が分からず右往左往していました。
最終的にフォルダ名から半角スペースを削除し、「TeraTerm」としたところ正常に動作するようになりました。


Tera Termマクロ(SSH自動ログイン)


(鍵認証方式での SSH自動ログインマクロは「Tera Term 鍵認証方式でのSSH自動ログインマクロ」をご覧ください。)

 

さくらレンタルサーバーへのSSHアクセスにTera Termを使用しています。

ただ、毎回ユーザー名やパスワードを入力するのは手間がかかります。

そこで、Tera Termのマクロを使いオートログインできるようにします。

Tera Termをインストールしたフォルダ(C:\Program Files (x86)\teraterm\ 等)に、オートログインマクロのサンプルファイル(ssh2login.ttl)があるので、コピーしてデスクトップ等に貼り付けます。
ファイル名は「アカウント名.ttl」などにすると分かりやすいかと思います。

次に、「アカウント名.ttl」をテキストエディタで開き編集します。

username = 'アカウント名'
hostname = 'xxx.sakura.ne.jp'
passwdfile = 'D:\Tool\teraterm\pass_アカウント名.dat'
portnum = '22'

getpassword passwdfile username userpasswd

msg = hostname
strconcat msg ':'
strconcat msg portnum
strconcat msg ' /ssh /2 /auth=password /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg userpasswd

connect msg

解説
1行目 サクラのアカウント名を入れます
2行目 サクラの初期ドメイン「xxx.sakura.ne.jp」を入れます
3行目 暗号化したサーバパスワードの保存先ファイルを指定します
4行目 ポート番号(22)を指定します
6行目 「getpassword」コマンドを使用して、パスワードを「userpasswd」に代入します
8行目 変数「msg」に「hostname」を代入します
9~14行目 変数「msg」に「strconcat」コマンドで文字列を継ぎ足しています
16行目 「connect」コマンドで接続します

コマンドの詳細については公式サイトのコマンドリファレンスを参照してください。
詳しく解説が載ってます。

あとは、出来上がった「アカウント名.ttl」をダブルクリックすると接続できるようになります。
※初回起動時のみ、パスワードの入力が求められます

ただ、インストール時に拡張子「ttl」の関連付けをしていない場合は、手動で関連付けを行う必要があります。

関連付けは、「アカウント名.ttl」アイコンを右クリックして【プロパティ】を開きます。

TeraTermの設定

【変更】から、Tera Termをインストールしたフォルダ(C:\Program Files (x86)\teraterm\)を選び、「ttpmacro.exe」を開きます。
これで、自動ログインマクロの設定は完了です。