FAQ
2020/09/30 18:53
Frequently Asked Questions
FAQ がありませんが?
Q. サイトに FAQ が見当たりません。質問の前に、ご一読ください。
A. Tera Term 開発プロジェクトの公式 FAQ が存在します。
https://ttssh2.osdn.jp/manual/ja/about/qanda.html
当サイトでは、上記にない場合に補足するような情報を FAQ として記載する予定です。
このサイトを書いている人は誰?
神場和也(埼玉県川口市在住)です。b / p / m の前の ん の綴りは m と書く、ヘボン式の特殊ルールに従っています。
ヘボン式で綴ると Jimba Kazuya となります。
当サーバおよびネットワークの設計・構築・保守やシステム設計および設定、ソフトウェアの設定、記事の執筆など、一通り作業しています。
仕事と比べてあまり難しいことはしていませんが、システムエンジニアが本業だけあってそれなりの知識は有しているつもりです。
トラブルシューティング
キーボードからの入力を受け付けなくなった
Q. いままで操作していた Tera Term で、いきなりキーボードからの入力を一切受け付けなくなりました。このショートカットは、UNIX / Linx 側から Tera Term への出力をロックするものです。
A. Ctrl + S キーを入力していませんか? Ctrl + Q キー で解除できます。
(ASCII コードの制御文字 ^S (XOFF) を送信したため)
この場合、キーボードからの入力を受け付けなくなったわけではなく、受け付けた内容を UNIX / Linux 側が出力しないことが原因です。
Ctrl + Q キー (ASCII コードの制御文字 ^Q (XON) を送信) で再開されます。
もちろん、ロック解除までの入力内容は、ロック解除時点で UNIX / Linux 側で実行されます。
これは Ctrl + S でロックした後に exit を入力後、Ctrl + Q で再開した際に実行されることから分かります。
制御文字を送信しているという性質上、ロックさせなくするには Tera Term のキーボード設定を変更するか、 UNIX / Linux 側での対処が必要です。
ログの自動取得(コマンドライン)
2021/05/21 04:16
ログの自動取得(コマンドライン)
ログは、ホストにアクセスした際に自動で取得を開始させることができます。やり方は、大雑把に 3 種類あります。
- ログの手動取得
- コマンドラインで指定する
- マクロで指定する
コマンドラインの指定とは
06 でも触れていますが、プログラム(コマンド)の起動パス(文字列)から改行文字(Enter)までを、コマンドラインと呼んでいます。コマンドラインを OS に渡す(実行させる)ことで、全てのプログラムが動いています。
これは Windows のような GUI をもつ OS でも、マウス操作でコマンドラインを生成できるようにつくられているというだけで、実のところは同じようにコマンドラインが必須です。
コマンドラインでは、プログラムの起動パスに続けて、スペースもしくはタブで区切って文字列を指定することができます。
Tera Term ではこの文字列を起動パラメータといい、特定の文字列を与えられたときに特定の挙動になるよう、プログラムされています。
Tera Term の起動パラメータ
Tera Term の起動パラメータは、以下のとおりです。TTERMPRO [ <host>[[:]<TCP port#>] | telnet://<host>[:<TCP port#>][/] | \\<server>\pipe\<pipe name>] [/B] [/BAUD=<speed>] [/C=<serial port#>] [/DS] [/E] [/ES] [/F=<setup file>] [/FD=<file transfer directory>] [/H] [/I] [/K=<keyboard setup file>] [/KR=<kanji code (receive)>] [/KT=<kanji code (transmit)>] [/L=<log file>] [/LA=<language>] [/M=<macro file>] [/NOLOG] [/P=<TCP port#>] [/R=<replay file>] [/SPEED=<speed>] [/T=<telnet flag>] [/TEKICON=<icon name>] [/TIMEOUT=<connecting timeout value>] [/V] [/VTICON=<icon name>] [/W="<window title>"] [/WAITCOM] [/X=<window pos (x)] [/Y=<window pos (y)] [/PIPE] [/AUTOWINCLOSE=<flag>] [;<comment>]
自動取得設定
Tera Term の起動パラメータで、ログファイルの指定を行うものは [/L=そのため、以下の様に指定することでログファイルも指定されます。
TTERMPRO /L=<log file>Tera Term は、32bit プログラムなので、Windows OS が 32bit 版か 64bit 版かでインストール先が変わります。
32bit 版の場合
デフォルト状態ならば %ProgramFiles%\teraterm にインストールされているので、そのフォルダを開きます。64bit 版の場合
デフォルト状態ならば %ProgramFiles(x86)%\teraterm にインストールされているので、そのフォルダを開きます。ショートカットの作成
Tera Term の実行プログラム ttermpro.exe をマウスの右ボタンでドラッグ&ドロップすると、以下のようなコンテキストメニューが表示されます。デスクトップなど、任意のフォルダに右ドラッグ&ドロップして、ショートカットを作成してください。
このショートカットファイルは、コマンドラインを含むファイルになっています。
ショートカットの修正
ショートカットを右クリックして、コンテキストメニューから「プロパティ」を選択します。すると、ショートカットタブが開きます。
リンク先(T) の中で、ttermpro.exe に続いて、ログオプションを追記します。
編集したら「OK」をクリックして確定すると、今後はこのショートカットを実行するたびに追記したログファイルへログが取得されます。
ただし、すでに ログ自動取得設定を行う(デフォルト設定変更) を設定している場合は、ログ自動取得設定を行う(デフォルト設定変更) の設定が優先となります。
マクロサンプル
2021/05/31 10:08
Tera Term マクロサンプル
ログイン自動化系
パスワード登録版
パスワード情報を、指定のファイルに(Tera Term の機能を利用して)暗号化しつつ保存するものです。パスワードファイル暗号化(7zip 利用版)
Tera Term の機能を利用している暗号化ファイルは、ファイル自体が漏洩したら復元できます。このファイルを、さらに暗号化して保存するものです。
公開鍵利用版
利用前提となるソフトウェア等をセットアップする手順も記載しているもの。ファイル解析系
系統未整理
Tera Term マクロ用サブルーチンサンプル
2019/06/11(火)Tera Term ログイン自動化での注意点
2019/06/15 05:18
危険な使い方について、なぜ危険なのかを解説しつつ、どういうタイミングで使えばいいのかを解説します。
結論から
パスワードの入力は、横着せずに毎回入力しましょう。それが、たぶん一番安全です。
きっと一番なのは使わないことなんでしょうが…このサイトの意味がないですし、そもそも便利なツールでも「使いどころに注意してね」というスタンスなので、自己責任でお願いいたします。
要注意
使いどころに注意を要するものです。/passwd オプション
コマンドラインでも、マクロの connect でも使える、オートログインに必須なスゴイやつですが、じつはオプション指定というのは OS 側で平文で管理されてます。Tera Term の利用時、パスワードは毎回手で入力することが望ましいです。
たとえば Tera Term のログインマクロでホストへログインしたあと、コマンドプロンプトで以下を実行してみましょう。
command prompto> wmic process where "name = \"ttermpro.exe\"" get name,commandlineあなたの環境では、どう表示されたでしょうか。
私の環境(Windows 10 Pro)では、Tera Term で接続しているホスト名、ポート番号、アカウント、パスワード、全部表示されてしまいました。
一応、回避策はあるようです。
connect コマンドに対する既存の接続オプションの変数を connect_option と仮定して、次のように 2 ステップ踏むようにすると、Windows 側に表示されなくなりました。
sprintf2 connect_option "%s:port /auth=password /user=%s /passwd=%s" hostname username password ; launch Tera Term connect '/DS' ; connect to server connect connect_option
ただ、サンプルのログインマクロでは、このような段階を踏んだアクセス方法は記載されておらず、利用している人は少ないのではないかと個人的に思っています。
これくらい軽い動作でアカウント情報を出力できるなら、AD とかに仕込めたらアカウント抽出が捗りますね。
Tera Term ログインからでさえ省力化するなら、アクセス管理サーバがあってもきっと公開鍵を大量に配布して ssh もパスワードなしでログインしていることでしょう(憶測)。
そうでなくても、passwordbox コマンドでパスワードを暗号化したファイルをローカルに置いているに違いない!(妄想)
冗談はともかく、オプションを表示させるのは Windows 側の仕様なので、適切に回避するしかなさそうです。
passwordbox コマンド
こちらもオートログインでは非常に重要なコマンドですね。入力されたパスワードを暗号化して、ファイルへ保存してくれます。
もちろん、次回の利用では復号化を行ってくれます。
passwordbox で作成したファイルのパスは、ご存知ですか?
また、それをテキストエディタで参照することができるのもご存知でしょうか。
ここで唐突に、某所で公開されていたソースコードを貼り付けます。
wfile = 'パスワード解析結果.txt' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; ファイル定義 :FileInput inputbox 'パスワード DAT のパスを入力してください。' 'Path input' pwdat = inputstr strlen pwdat if result = 0 then goto FileInput endif ; ファイルの存在確認 filesearch pwdat if result = 0 then sprintf2 msg 'ファイル %s がありません\n終了します' pwdat strspecial msg messagebox msg 'Error' exit endif ; Passowrd file Open (ファイルハンドラ:fhPWDAT 読み取り専用) fileopen fhPWDAT pwdat 0 1 ; Write file open (ファイルハンドラ:fhWrDat) fileopen fhWrDat wfile 0 0 ; 上から順に変数へ格納 while 1 filereadln fhPWDAT line if result = 1 then break endif ;; 解析開始 strscan line '=' if result = 0 then ; [定義部分] strscan line '[' if result then pLpw = line strtrim pLpw '[' strscan pLpw ']' if result then strtrim pLpw ']' endif endif filewriteln fhWrDat line else ; パスワード識別子 strsplit line '=' PassName = groupmatchstr1 getpassword pwdat PassName pLpw sprintf2 msg '%s=%s' PassName pLpw filewriteln fhWrDat msg endif endwhile ; File Clese fileclose fhWrDat fileclose fhPWDAT上記のソースをコピペ後、「pw解除.ttl」等の適当な名前で、保存します。
ソースをオープンしているので、妙なコードが書かれていないか、ご自身で確認してください。
pw解除.ttl を実行しましょう。
先ほど参照した passwordbox で作成したファイル 「.dat」 を、フルパスで指定してあげます。
すると、マクロが置いてあるフォルダに「パスワード解析結果.txt」というテキストファイルが作成されるので、開きます。
パスワードが復号化できたことを確認します。
…つまり、いくら暗号化されているとはいえ、ファイルが流出してしまえば解読は1瞬です。
メモにアカウントを書いているのと、あんまり変わりません。
passwordbox を使う場合は、くれぐれもファイルの流出にご注意ください。
対策としては、暗号化パスワードのファイルを暗号化アーカイブで保存しておくことでしょうか。
必要に応じて解凍→削除を行えば、それなりにパスワードを保護できるでしょう。
コマンドラインでファイルを暗号化できるアーカイバを導入して exec で指定することも一考の余地はありそうです。
なお、このブログは Tera Term がメインなので、他のターミナルエミュレータのことは分かりません。
繰り返しますが、スタンスとしては「使いどころに注意してね」と。