パスフレーズ付きの秘密鍵を用いた、SSH自動ログインマクロの書き方について。
※ プレインパスワードでの書き方は こちら
※ パスフレーズ無しの秘密鍵での書き方は こちら
下記の内容を「ホスト名.ttl」などとして保存します。
「ttl」ファイルが、Tera Term に関連付けされていればダブルクリックするだけで自動ログインできるようになります。
username = 'アカウント名' hostname = 'IPアドレス' userkeyfile = 'C:\Tool\TeraTerm\秘密鍵のファイル名' passwdfile = 'C:\Tool\TeraTerm\パスフレーズ保存用ファイル.dat' portnum = 'ポート番号' getpassword passwdfile username userpasswd msg = hostname strconcat msg ':' strconcat msg portnum strconcat msg ' /ssh /2 /auth=publickey /user=' strconcat msg username strconcat msg ' /keyfile=' strconcat msg userkeyfile strconcat msg ' /passwd=' strconcat msg userpasswd connect msg settitle 'タイトル(ホスト名など)'
4行目のdatファイルは、パスフレーズを保存するファイル名です。
お好みに合わせて書き換えてください。
初回ログイン時に、パスフレーズの入力が求められるので、入力するとそのdatファイルに保存されます。
3行目と4行目のファイルパスについては、環境に合わせて書き換えてください。
3行目と4行目のファイルパスに「半角スペース」が入らないようにしてください。
半角スペースがパスに混入していると、以下のエラーが発生します。
SSH2秘密鍵の読み込みに失敗しました
No such file or directory
コメント
キーファイルのパス名を““で囲って渡せば、スペースが入っていても大丈夫です。
赤カプ 様
コメントありがとうございます。
私の環境(Windows11)で試してみましたところ、passwdfile につきましては “” に変更することでスペースが入っていても動くことが確認できました!
ただ、userkeyfile の方は、以下のように “” に変更してもスペースが混入しているとマクロが正常に動作せず接続できませんでした。
userkeyfile = “C:\Tool\TeraTerm\秘密鍵の ファイル名”
環境によるものなのか、バージョン(Version 4.99)によるものなのかは不明です。