公開鍵と秘密鍵を用いた鍵認証方式の、SSH自動ログインマクロの書き方について。
※ プレインパスワードでの書き方は こちら
※ 秘密鍵(パスフレーズ付き)での書き方は こちら
下記の内容を「ホスト名.ttl」などとして保存します。
「ttl」ファイルを、Tera Term に関連付けしておくとダブルクリックするだけで自動ログインできるようになります。
username = 'アカウント名' hostname = 'IPアドレス' userkeyfile = 'C:\Tool\TeraTerm\秘密鍵のファイル名' portnum = 'ポート番号' msg = hostname strconcat msg ':' strconcat msg portnum strconcat msg ' /ssh /2 /auth=publickey /user=' strconcat msg username strconcat msg ' /keyfile=' strconcat msg userkeyfile connect msg settitle 'タイトル(ホスト名など)'
3行目のファイルパスについては、環境に合わせて書き換えてください。
このときの注意点としまして、ファイルパスに「半角スペース」が入らないようにしてください。
当初フォルダ名に半角スペースを用いて「Tera Term」としていたところ
SSH2秘密鍵の読み込みに失敗しました
No such file or directory
というエラーが発生し、しばらく原因が分からず右往左往していました。
最終的にフォルダ名から半角スペースを削除し、「TeraTerm」としたところ正常に動作するようになりました。
コメントにて、赤カプ様と、通りすがり様からご指摘頂きましたが、'の中でさらに“で囲むことで、ファイルパスに半角スペースが入っていても動作することが確認できました。
userkeyfile = '"C:\Tool\Tera Term\秘密鍵のファイル名"'
コメント
キーファイルのファイル名を““で囲って渡すと、スペースがパスに入っていても大丈夫です。
赤カプ 様 コメントありがとうございます。
私の環境(Windows11)で試してみましたところ、以下のように “” に変更してもスペースが混入しているとマクロが正常に動作せず接続できませんでした。
userkeyfile = “C:\Tool\TeraTerm\秘密鍵の ファイル名”
を““に変更するのではなく、
の中を”“で囲むとうまく動くと思います。userkeyfile = '“C:\Tool\TeraTerm\秘密鍵の ファイル名”'
通りすがり 様、コメントありがとうございます。
なるほど、赤カプ 様が言われていたのもそういう意味だったのですね。 'の中をさらに”で囲んであげると私の環境でも動作することが確認できました!
お二方ともありがとうございました! 本文も修正させて頂きます。