tag:crieit.net,2005:https://crieit.net/tags/TeraTermMacro/feed 「TeraTermMacro」の記事 - Crieit Crieitでタグ「TeraTermMacro」に投稿された最近の記事 2022-02-12T06:17:14+09:00 https://crieit.net/tags/TeraTermMacro/feed tag:crieit.net,2005:PublicArticle/18055 2022-02-12T05:57:59+09:00 2022-02-12T06:17:14+09:00 https://crieit.net/posts/SSH-TeraTerm SSHログイン用のTeraTermマクロ作成 <p>TeraTermを利用してパブリッククラウド上のサーバにSSH接続する際、<br /> セキュリティの観点から公開鍵認証方式を採用しているのですが、<br /> 接続する度にIPや鍵が格納されてるパスを入力するのが面倒なので<br /> TeraTermMacroを作成してログインの手間を省こうと思います。</p> <h1 id="目次"><a href="#%E7%9B%AE%E6%AC%A1">目次</a></h1> <p>1.使い方<br /> 2.パスワード認証ログイン<br /> 3.公開鍵認証ログイン<br /> 4.サーバを選択してログイン<br /> 5.踏み台経由してサーバログイン</p> <h1 id="1.使い方"><a href="#1.%E4%BD%BF%E3%81%84%E6%96%B9">1.使い方</a></h1> <p>TeraTermマクロは、拡張子がttlのファイルに記述されている実行内容を、そのttlファイルを実行するだけで自動で一連の処理が行われる。<br /> ttlファイルの実行方法は主に2つ。1つは、TeraTermからttlファイルを選択して実行する方法。他方は、ttlファイルをダブルクリックして実行する方法。後者の方法では、Teratermインストール時にttlファイルの関連付けを行わなかった場合、事前にttlファイルをTeraTermマクロで実行するように関連付け設定を行う必要がある。</p> <h2 id="1.1TeraTermから実行"><a href="#1.1TeraTerm%E3%81%8B%E3%82%89%E5%AE%9F%E8%A1%8C">1.1TeraTermから実行</a></h2> <p>TeraTermアイコンをクリックすると、下図のような画面になるので<br /> 新しい接続先を入力する画面を「×」で消した後、上部のメニューから「コントロール」を選択し、「マクロ(M)」をクリック。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462069d6b75c0f.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462069d6b75c0f.png?mw=700" alt="image.png" /></a></p> <p>すると、teratermのフォルダ(C:\Program Files (x86)\teraterm)が表示されるので、そこに事前に配置しておいた実行したいttlファイルをクリックするか、もしくは別のファルダまで移動して所望のttlファイルをダブルクリック。</p> <h2 id="1.2ttlファイルをダブルクリック実行"><a href="#1.2ttl%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E3%83%80%E3%83%96%E3%83%AB%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E5%AE%9F%E8%A1%8C">1.2ttlファイルをダブルクリック実行</a></h2> <p>まずは、どれか一つ実行したいttlファイルを右クリックして「プロパティ」を開く。「全般」の「変更」をクリックし、ttlファイルを開く方法としてアプリが表示されるので、「このPCで別のアプリを探す」を選択。<a href="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462069f6c48407.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462069f6c48407.png?mw=700" alt="image.png" /></a></p> <p>TeraTermのフォルダ(C:\Program Files (x86)\teraterm)まで移動し、「ttpmacro.exe」をダブルクリックし、プロパティの「適用」を押して「OK」をする。</p> <p><a href="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462069fa107d69.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b1563346721930462069fa107d69.png?mw=700" alt="image.png" /></a></p> <p>以上の関連付け設定を無事完了させると、ttlファイルをダブルクリックするだけでTeraTermマクロを実行できるようになる。</p> <h1 id="2.パスワード認証ログイン"><a href="#2.%E3%83%91%E3%82%B9%E3%83%AF%E3%83%BC%E3%83%89%E8%AA%8D%E8%A8%BC%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3">2.パスワード認証ログイン</a></h1> <pre><code>timeout=5 ;------------------------------------------------------- ;ログイン情報 HOSTIP = 'a.a.a.a' USERNAME = 'hoge' PASSWORD = 'hoge' ;------------------------------------------------------- ;------------------------------------------------------- ;SSHログイン msg = HOSTIP strconcat msg ':22 /ssh /auth=password /user=' strconcat msg USERNAME strconcat msg ' /passwd=' strconcat msg PASSWORD connect msg end </code></pre> <h1 id="3.公開鍵認証ログイン"><a href="#3.%E5%85%AC%E9%96%8B%E9%8D%B5%E8%AA%8D%E8%A8%BC%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3">3.公開鍵認証ログイン</a></h1> <p>公開鍵認証方式の場合は、パスワード認証方式で<code>/auth=password</code>としていたところを、<code>/auth=publickey</code>に書き換え、鍵のパスを指定するだけ。</p> <pre><code>timeout=5 ;------------------------------------------------------- ;ログイン情報 HOSTIP = 'a.a.a.a' USERNAME = 'hoge' PASSWORD = 'hoge' KEYFILE = 'C:/XXX/YYY.key' ;------------------------------------------------------- ;------------------------------------------------------- ;SSHログイン msg = HOSTIP strconcat msg ':22 /ssh /auth=publickey /user=' strconcat msg USERNAME strconcat msg ' /keyfile=' strconcat msg KEYFILE connect msg end </code></pre> <h1 id="4.サーバを選択してログイン"><a href="#4.%E3%82%B5%E3%83%BC%E3%83%90%E3%82%92%E9%81%B8%E6%8A%9E%E3%81%97%E3%81%A6%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3">4.サーバを選択してログイン</a></h1> <p>SSH接続したいサーバごとにTeraTermマクロを作成するのは面倒。<br /> ということで、マクロを実行する際に接続先サーバを指定してログインできるようにする。下図のように選択画面を出す。<br /> <a href="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046206ca0d92b38.png" target="_blank" rel="nofollow noopener"><img src="https://crieit.now.sh/upload_images/01951106d2320a385b156334672193046206ca0d92b38.png?mw=700" alt="image.png" /></a></p> <pre><code>timeout=5 ;------------------------------------------------------- ;接続先ホスト別情報 HOSTIP1 = 'a.a.a.a' USERNAME1 = 'hoge' PASSWORD1 = 'hoge' KEYFILE1 = 'C:/XXX/YYY.key' HOSTNAME1 = 'サーバ1' HOSTIP2 = 'b.b.b.b' USERNAME2 = 'hoge' PASSWORD2 = 'hoge' KEYFILE2 = 'C:/XXX/YYY.key' HOSTNAME2 = 'サーバ2' ;------------------------------------------------------- ;------------------------------------------------------- ;選択画面 sprintf '【1】:%s %s【2】:%s %s' HOSTNAME1 #10 HOSTNAME2 #10 inputbox inputstr 'SSH接続対象を選択:' str2int INPUTINT inputstr if INPUTINT = 1 then HOSTIP = HOSTIP1 USERNAME = USERNAME1 KEYFILE = KEYFILE1 elseif INPUTINT = 2 then HOSTIP = HOSTIP2 USERNAME = USERNAME2 KEYFILE = KEYFILE2 else messagebox '選択肢外が入力されました' '入力エラー' endif ;------------------------------------------------------- ;------------------------------------------------------- ;SSHログイン msg = HOSTIP strconcat msg ':22 /ssh /auth=publickey /user=' strconcat msg USERNAME strconcat msg ' /keyfile=' strconcat msg KEYFILE connect msg end </code></pre> <h1 id="5.踏み台経由してサーバログイン"><a href="#5.%E8%B8%8F%E3%81%BF%E5%8F%B0%E7%B5%8C%E7%94%B1%E3%81%97%E3%81%A6%E3%82%B5%E3%83%BC%E3%83%90%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3">5.踏み台経由してサーバログイン</a></h1> <p>パブリックサブネット内に配置されているサーバを踏み台にして、プライベートサブネット内にあるサーバへssh接続する方法。</p> <pre><code>timeout=5 ;------------------------------------------------------- ;接続先ホスト別情報 HOSTIP1 = 'a.a.a.a' USERNAME1 = 'hoge' PASSWORD1 = 'hoge' KEYFILE1 = 'C:/XXX/YYY.key' HOSTNAME1 = 'サーバ1' HOSTIP2 = 'b.b.b.b' USERNAME2 = 'hoge' PASSWORD2 = 'hoge' KEYFILE2 = 'C:/XXX/YYY.key' HOSTNAME2 = 'サーバ2' ;------------------------------------------------------- ;------------------------------------------------------- ;選択画面 sprintf '【1】:%s %s【2】:%s %s' HOSTNAME1 #10 HOSTNAME2 #10 inputbox inputstr 'SSH接続対象を選択:' str2int INPUTINT inputstr ;------------------------------------------------------- ;------------------------------------------------------- ;SSHログイン if INPUTINT = 1 then msg = HOSTIP1 strconcat msg ':22 /ssh /auth=publickey /user=' strconcat msg USERNAME1 strconcat msg ' /keyfile=' strconcat msg KEYFILE1 connect msg elseif INPUTINT = 2 then msg = HOSTIP1 strconcat msg ':22 /ssh /auth=publickey /user=' strconcat msg USERNAME1 strconcat msg ' /keyfile=' strconcat msg KEYFILE1 connect msg wait '$' ;プロンプトを待つ msg = 'ssh ' strconcat msg USERNAME2 strconcat msg '@' strconcat msg HOSTIP2 sendln msg wait 'password' sendln PASSWORD2 else messagebox '選択肢外が入力されました' '入力エラー' end endif end </code></pre> kawai_mizugorou