公開鍵と秘密鍵のペアを準備しておきます
Windows上ではTeratermを使うのが簡単です。まずTeratermを起動します。インストールしていない場合はおもむろにTeraterm自体をインストールしてください。で、まず起動。

起動したばかりですが、鍵生成のために下段中央の“キャンセル”をクリック。

トップメニューの設定->鍵生成を選択。

上図の“SSH鍵生成”を選択。

このままデフォルトの設定で”生成”でも可。

生成が終わったら、公開鍵の保存と秘密鍵の保存を実行します。鍵のパスフレーズは空でも可です。
で一旦終了します。普通にパスワードを使って、Teratermでssh接続します。

この状態で、先ほど生成し保存した”公開鍵”の方をターミナルの画面にDrag and Dropします。

このような画面になりますから、そのまま“OK”。
nao@ghost:~$ ls -alt *.pub
-rw-r--r-- 1 nao nao 98 7月 16 15:02 id_ed25519.pub
nao@ghost:~$ cat id_ed25519.pub >> .ssh/authorized_keys
nao@ghost:~$ ls -alt .ssh
合計 16
-rw------- 1 nao nao 196 7月 22 14:09 authorized_keys
drwx------ 9 nao nao 4096 7月 22 14:06 ..
drwx------ 2 nao nao 4096 7月 16 14:58 .
等として公開鍵を./.ssh/authorized_keysへ足しておきます。.sshディレクトリとauthorized_keysのpermissionに注意。
さて、Teratermから使ってみましょう。

ユーザ名は入れます。いつものように”プレインパスワードを使う”でなく、一個下のRSA云々で始まるものを選択。秘密鍵を指定を…をクリックして行います。

ここで“OK”。無事にログインできればOK。ここまできたら、マクロを作っておきましょう。拡張子がttlなるファイルを作って、以下のような内容にしておきます。
;==============================================
;; 接続先IPアドレス
HOST='192.168.0.230'
;; ポート番号(SSH:22)
PORT='22'
;; ユーザ名
USERNAME='nao'
;; キーファイル名
KEY_FILE='C:\Users\docna\Dropbox\common-keys\id_ed25519'
;; 設定ファイル(任意)
INI_FILE='TERATERM.INI'
;==============================================
;; マクロを配置したフォルダに秘密鍵のファイルを置く場合。
;; それ以外は適宜KEY_FILE_PATHの値を鍵ファイルのパスに変更する。
;;MACRO_DIR='C:\Users\docna\OneDrive\ドキュメント'
;;KEY_FILE_PATH="\id_rsa"
;; マクロを配置したフォルダの絶対パス取得
getdir MACRO_DIR
;; 鍵ファイルパス生成
;;strconcat KEY_FILE_PATH MACRO_DIR
;;strconcat KEY_FILE_PATH '\'
strconcat KEY_FILE_PATH KEY_FILE
;; 設定ファイルパス生成(任意)
;;strconcat INI_FILE_PATH MACRO_DIR
;;strconcat INI_FILE_PATH '\'
;;strconcat INI_FILE_PATH INI_FILE
;; 接続コマンド生成
COMMAND = HOST
strconcat COMMAND ':'
strconcat COMMAND PORT
strconcat COMMAND ' /ssh /2 /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE_PATH
;; 設定ファイル読み込み(任意)
;; strconcat COMMAND ' /F='
;; strconcat COMMAND INI_FILE_PATH
;; 接続
connect COMMAND
end
このttlファイル自体をダブルクリックすれば接続できます。初回は、

このようなダイアログが出るかもしれませんが、当然”続行”です。

無事ログインできました。Teratermのマクロファイル(拡張子ttl)をダブルクリックするだけでログインを自動化できました。ついでにRaspberry Pi 3Bのスクリプトを起動してみましょう。
nao@hawk:~ $ ./rtemp.sh
Wed 22 Jul 14:25:54 JST 2026, 32.375
よさげですね。今のRaspberry Pi 3BにI2CでつないだADT7410で計った室温が得られました。ログインして、bashのコマンド(スクリプト)を実行して結果を得てexitするという一連の操作は、sshクライアントを使えばできます。やってみましょう。

ここで右クリックからの

ターミナルで開く を選択。
PS C:\Users\docna\Dropbox\common-keys> ssh -i id_ed25519 nao@192.168.0.220
Linux hawk 6.18.34+rpt-rpi-v8 #1 SMP PREEMPT Debian 1:6.18.34-1+rpt1 (2026-06-09) aarch64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Jul 22 14:23:42 2026 from 192.168.0.18
nao@hawk:~ $
ログインができました。一旦exitでログアウトして、
PS C:\Users\docna\Dropbox\common-keys> ssh -i id_ed25519 nao@192.168.0.220 ./rtemp.sh
Wed 22 Jul 14:35:04 JST 2026, 32.5
とすると、結果を得た後で自動的にログアウトできます。今はWindowsで使える純正のsshクライアントを使いましたが、これはsecurity上うるさいこともあるので、支障があればGit for Windowsサイドのsshを使う手もあります。またどうしても秘密鍵暗号鍵のセットができない、面倒だ、嫌だ。という場合は、PuTTy付属のplink.exeを使う手もあります。sshクライアントにはもともとpassword指定するオプションはありません。最終的にはC++ Builder CEで作成したGUIクライアントから上記の計測結果を得ることをしたいのですが、いつものIndyではsshコンポーネントがありません。(サードパーティーの有料コンポーネントにはあるようです。)さてどうするのでしょうか?以下次号。(笑)


コメント