zaki work log

作業ログやら生活ログやらなんやら

Tera Termのsshアクセスの認証をコマンドラインオプションで自動化する

WindowsクライアントからTera Termを使ってsshログインしてるけど毎回パスワード入力してるのが面倒な場合、パスフレーズ無し公開鍵を作って公開鍵認証のコマンドラインオプションを設定すればダブルクリックでsshできます。

ssh関連オプション

TTSSH コマンドライン

使うのは主に以下の通り。

  • ユーザ名・ホスト名指定: username@hostname
  • 公開鍵認証: /auth=publickey
  • 秘密鍵ファイルパス: /keyfile=C:\Users\user\.ssh\private_key_file

ショートカットの作成

デスクトップとかにTera Term(ttermpro.exe)のショートカットを作成して、プロパティを開く

f:id:zaki-hmkc:20200422085437p:plain

そして、「リンク先」のttermpro.exeへのパスのあとにスペースを入れ、上記3つのパラメタを入力する。

C:\local\appli\teraterm\ttermpro.exe zaki@192.168.0.20 /auth=publickey /keyfile=C:\Users\zaki\.ssh\id_rsa_nopass

こんな感じ。

あとはこのショートカットをダブルクリックで起動すれば、zaki@192.168.0.20へsshアクセスしてくれる。

Program Files (x86)とかのスペースを含むパスの場合は、ダブルクォーテーションで囲むのをお忘れなく。

パスフレーズ有りの鍵しか使えない場合

ショートカット内にパスフレーズをベタ書きして良いなら、/passwd=を使って指定はできる。
パスフレーズcurry_daisukiであれば以下の通り。

C:\local\appli\teraterm\ttermpro.exe zaki@192.168.0.20 /auth=publickey /keyfile=C:\Users\zaki\.ssh\id_rsa /passwd=curry_daisuki

公開鍵認証でなくパスワード認証の場合

キーペアを用意できず公開鍵認証できない場合はパスワード認証を行うオプションの/auth=passwordを使い、更にパスワードをショートカット内にベタ書きして良いなら/passwdを指定して以下の通り。
パスワードがcurry_tabetaiであれば以下の通り.

C:\local\appli\teraterm\ttermpro.exe zaki@192.168.0.20 /auth=password /passwd=curry_tabetai

passwordpasswdが混ざってるので注意。

sshキーペア作成(パスフレーズ無し)

-N ""を付けてssh-keygenすればOK

zaki@wensley% ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa_nopass
Generating public/private rsa key pair.
Your identification has been saved in /home/zaki/.ssh/id_rsa_nopass.
Your public key has been saved in /home/zaki/.ssh/id_rsa_nopass.pub.
The key fingerprint is:
SHA256:Z43DF7pHYyga8k0DVPIoqFr/B/M3DGVai6xyN29pzPc zaki@wensley
The key's randomart image is:
+---[RSA 2048]----+
|      o..        |
|   . . +         |
|  . . o .   .    |
| .   . . .+= .   |
|. . . ..S*O.*    |
|.. . oo===.* .   |
|.   . o=.=...    |
|    ..o = X..    |
|     o.o *.o .E  |
+----[SHA256]-----+

複数ホストの場合

ランチャーアプリと組み合わせるか、listboxを使ってマクロ作ると良いでしょうね。