LoginSignup
2
0

TeraTerm5でgetpasswordを利用してパスワードを読み込めない

Posted at

事象

TeraTerm 5.0 ~ 5.2 で getpassword を使用すると、パスワードファイルのパスに日本語を含む場合はパスワードを読み込めない。

対応策

パスワードファイルの保存場所のパスに日本語を含まないようにする。
もしくは2024年3月17日に対応されているのでバージョン 5.3 からは本事象は起きないはず

詳細

TeraTerm でパスワード認証の ssh 接続する際に毎回パスワード入力するのは面倒くさいのでマクロにしている。
その際、パスワードをベタ打ちするのは避けたかったので以下のように getpassword コマンドを利用している。

sample.ttl
username = 'ユーザ名'
hostname = 'IPアドレス'
port = ポート番号
passwdfile = 'password.dat'

; password.dat からパスワードを読み込む
; 見つからなければ入力ボックスを開く
getpassword passwdfile username userpasswd

sprintf2 msg '%s:%d /ssh /auth=password' hostname port
sprintf2 msg '%s /user=%s /passwd=%s' msg username userpasswd

connect msg

これにより初回のみパスワードの入力が求められ、指定のファイルに暗号化した状態で保存される。
次回からはファイルから読み取られるのでパスワード入力は不要となり、パスワードファイルを開いても暗号化されているので平文で見えることが無くなる。
しかしこのマクロをバージョン 5.2 で動作させたところ、パスワードファイルが存在していてパスワードが保存されているにも関わらず毎回パスワードの入力が求められるようになってしまった。

原因

パスワードファイルが Unicode 対応しておらず、これによりパスに日本語を含む場合に正常に読み取れなくなっていたとのこと。

issue (解決済み):https://github.com/TeraTermProject/teraterm/issues/161

私の場合はマクロを C:\~略~\TeraTerm接続マクロ 配下に置いていたので不具合が発生した。
対応としては前述の通りパスから日本語を消せばよい。
もしくは上記 issue の対応が2024年3月17日時点でマージされているので、バージョン 5.3 からは解決しているはず。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0