質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

2回答

4509閲覧

Tera TermマクロでAzureにSSH接続出来ません

Walkingroad

総合スコア23

Tera Term

Tera Termは、TeraTerm Projectが開発する国産のWindows向けターミナルソフト。telnetプロトコルでのリモートホストへの接続やCOMポートのシリアル接続が可能で、マクロが利用できます。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

0クリップ

投稿2019/07/20 01:50

編集2019/08/25 01:08

前提・実現したいこと

TeraTermマクロを利用し、Azureにログインしようとしているのですが、
接続ができない状態です。
TeraTermに詳しい方、ご教示よろしくお願いいたします。

発生している問題・エラーメッセージ

connectを実行した際に、「result」の内容を確認すると、

1 (ホストへの接続はされていないが、Tera Term へのリンクはされている。)

が格納されている状態です。

該当のソースコード

TeraTermMacro

1;========================================================================= 2; 使用変数 3;========================================================================= 4username = '' 5portnum = '50500' 6pattern = '^([\w-]+)' 7size = 0 8 9folderpath = '.\'' 10foldername = 'passdir' 11passwdfile = 'passwd_' 12 13logfoldername = 'log' 14logfullpath = '' 15logfilename = 'log_' 16 17 18 19;========================================================================= 20; 接続先ホスト指定(変更箇所) 21;========================================================================= 22hostname = '接続先のアドレス' 23 24;========================================================================= 25; パスワード情報保管先作成 26;========================================================================= 27filestat foldername size 28if result == -1 then 29 foldercreate foldername 30endif 31 32;========================================================================= 33; パスワード情報ファイル名・格納先文字列作成 34;========================================================================= 35strmatch hostname pattern 36strconcat passwdfile matchstr 37strconcat passwdfile '.dat' 38 39strconcat folderpath foldername 40strconcat folderpath '\' 41strconcat folderpath passwdfile 42 43;========================================================================= 44; ログ保管先作成 45;========================================================================= 46getdir logfullpath 47 48strconcat logfullpath '\' 49strconcat logfullpath logfoldername 50 51filestat logfullpath size 52if result == -1 then 53 foldercreate logfullpath 54endif 55 56strconcat logfullpath '\' 57strconcat logfullpath matchstr 58 59filestat logfullpath size 60if result == -1 then 61 foldercreate logfullpath 62endif 63 64;========================================================================= 65; ログイン処理 66;========================================================================= 67inputbox 'Login Username:' 'Enter Username' 68 69strlen inputstr 70 71if result <= 0 then 72 messagebox 'ユーザ名が確認できなかったため、処理を終了します。' 'ログイン操作中止' 73 end 74endif 75 76strconcat username inputstr 77 78getpassword folderpath username userpasswd 79 80filenamebox '公開鍵の選択' 0 'C:\' 81strconcat keyfilepath inputstr 82 83msg = hostname 84strconcat msg ':' 85strconcat msg portnum 86strconcat msg ' /ssh /2 /auth=publickey /user=' 87strconcat msg username 88strconcat msg ' /passwd=' 89strconcat msg userpasswd 90strconcat msg ' /keyfile=' 91strconcat msg keyfilepath 92 93messagebox msg 'connection setting' 94 95connect msg 96 97if result <> 2 then 98 messagebox result 'Result' 99 messagebox 'It could not be connected.' 'Connection Error' 100 end 101endif 102 103timeout = 10 104wait '$' '#' 105if result = 0 then 106 disconnect 107 end 108endif 109 110;========================================================================= 111; ログ作成処理 112;========================================================================= 113getdate datestr '%Y%m%d' 114gettime timestr '%H%M%S' 115 116strconcat logfilename hostname 117strconcat logfilename '_' 118 119strconcat logfilename datestr 120strconcat logfilename timestr 121strconcat logfilename '_' 122 123strconcat logfilename username 124strconcat logfilename '.log' 125 126messagebox logfullpath 'logfullpath' 127 128changedir logfullpath 129logopen logfilename 0 1 0 1

(2019年8月25日 追記)
コードを簡略化しました。

TeraTermMacro

1username = '(ユーザ名)' 2password = '(パスワード)' 3hostname = '(ホスト名 or IPアドレス)' 4keyfile = '(秘密鍵指定)' 5 6msg = hostname 7strconcat msg ':22 /ssh /auth=publickey /user=' 8strconcat msg username 9strconcat msg ' /keyfile=' 10strconcat msg keyfile 11strconcat msg ' /passwd=' 12strconcat msg password 13connect msg 14 15if result <> 2 then 16 messagebox result 'Result' 17 messagebox 'It could not be connected.' 'Connection Error' 18 end 19endif 20 21timeout = 10 22wait '$' '#' 23if result = 0 then 24 disconnect 25 end 26endif

試したこと

・ポート番号を「22」に戻して実施 → 同様のエラー
・「msg」の順序変更(/user や /keyfile の位置を変更) → 同様のエラー
・このマクロを使用せずに、TeraTermでAzureのIPアドレス(ホスト名)を指定 → ログイン可能
・このマクロを使用し、自宅サーバへのログイン → ログイン可能

補足情報(FW/ツールのバージョンなど)

TeraTermバージョン:
Version 4.103(SVN# 7769)

Macro作成エディタ:
Sakura Editor 2.2.0.1

マクロを使用しているマシン情報:
OS 名: Microsoft Windows 10 Pro
OS バージョン: 10.0.18362 N/A ビルド 18362
OS 製造元: Microsoft Corporation
OS 構成: スタンドアロン ワークステーション
OS ビルドの種類: Multiprocessor Free
最初のインストール日付: 2019/06/30, 21:00:45
システム起動時間: 2019/07/18, 19:44:48
システムの種類: x64-based PC
プロセッサ: 1 プロセッサインストール済みです。
[01]: Intel64 Family 6 Model 26 Stepping 5 GenuineIntel ~2793 Mhz
BIOS バージョン: Phoenix Technologies, LTD 6.00 PG, 2009/03/19
Windows ディレクトリ: C:\WINDOWS
システム ディレクトリ: C:\WINDOWS\system32
起動デバイス: \Device\HarddiskVolume1
システム ロケール: ja;日本語
入力ロケール: ja;日本語
タイム ゾーン: (UTC+09:00) 大阪、札幌、東京
物理メモリの合計: 16,375 MB
利用できる物理メモリ: 6,791 MB
仮想メモリ: 最大サイズ: 16,375 MB
仮想メモリ: 利用可能: 2,582 MB
仮想メモリ: 使用中: 13,793 MB
ページ ファイルの場所: N/A
ドメイン: WORKGROUP

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

マクロの connect msg の前に

var2clipb msg messagebox msg "msg"

の二行を追加してマクロを実行して下さい。

この時、接続の直前にメッセージボックスで msg の内容が表示されますが、期待した通りの内容になっていますか?
また、同時に msg の内容がクリップボードに入ります。新たに Tera Term を起動し、ホスト欄に Ctrl-V でクリップボードの内容を貼り付けして OK を押すとどのようになりますか?

投稿2019/08/29 04:06

doda

総合スコア947

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tatukoMATZW

2019/11/24 06:13

同様な症状が発生しています。(ここに追記させていただきます) この手順を実行しても、同様に接続できていません。 WINDOWS10とTERATERMとTTPMACRO、での権限関係についてはひととおり確認しました。 正直、次の確認するポイントも浮かんでいません。  マクロを使わなければ接続できる(のは同じなので)  AZUREのサーバー側ではなく、WIN10+TERATERM+マクロ、という中に原因はあると考えています  が、では、どこなのかが正直予想もできていません 引き続き、当方でも切り分けをしていくつもりなのですが、現時点では、先が見えていません。
dameo

2019/11/24 06:46

TERATERM使ってませんが、とりあえず視点として漏れてると思うので、少し質問します。 TERATERMはターミナルエミュレータに、シリアル・TELNET・ssh接続の機能を入れたWindowsソフトです。今回はssh接続をするためにTERATERMを使用しており、それをさらにマクロによる自動認証まで実現したいという話ですよね? 現在、マクロを使用しなければsshで接続可能な状態とのことですが、ここで質問です。 sshの認証方法っていくつかあり、主に使われるのは、パスワード認証か公開鍵認証です。 現在手動で接続されているのは、どちらの方法ですか?
tatukoMATZW

2019/11/25 05:36

ありがとうございます。 パスワード認証です。TERATERMで接続するときの文字列中でのパラメータにも設定してあります。 その後、もうひとつ切り分けることができました。 TERATERMの新しい接続からではなく(キャンセルして)コントロール>マクロ、の実行からは 接続することが確認できました。(これでマクロの内容ではないことは確認できましたので) ttpmacro.exeから起動した場合に接続に失敗するようです。(マクロ自体は間違えではないので、 優先度は下がりましたが、ひきつづき、調査してみるつもりです)
dameo

2019/11/25 06:30

了解です。頑張ってください。
guest

0

  1. Azure サーバで netstat -a -n -p | grep 22 で sshd が起動していますか?

投稿2019/07/25 13:28

nagaetty

総合スコア1106

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Walkingroad

2019/07/26 11:28 編集

回答ありがとうございます。 現在セキュリティの関係で22番ポートを閉め、 50500番ポートを開放しております。 現在コマンドを、「grep 50500」にし実行すると、 tcp 0 0 0.0.0.0:50500 0.0.0.0:* LISTEN tcp6 0 0 :::50500 :::* LISTEN - となっているため、sshdが正常に起動している状態です。 (systemctl においても、sshdが「active」になっていることを確認しております)
nagaetty

2019/07/26 21:03

お手元の環境にLinuxで動作する環境があれば、 yum -y install nmap nmap AzureサーバのIPアドレス -p 50500 を実行してみてはいかがでしょう。 Pingが届いていない場合は、 nmap -P0 AzureサーバのIPアドレス -p 50500 お手元からサーバまでの疎通確認が可能です。 おそらく中間地点でのネットワークフィルタに阻害されているものと思います。
Walkingroad

2019/07/28 02:45

回答ありがとうございます。 現在、TeraTermでの 50500ポートへのSSH接続はできております。 但し、 ・TeraTerm「マクロ」では接続が出来ない。 状態です。 マクロ上は、「IPアドレス」や、「パスワード」、「ポート」にも誤りが無いので、TeraTermとTeraTermマクロ使用時では何か差分があるのかどうかを確認したいのが、この質問の趣旨です。 言葉足らずで申し訳ありません。
nagaetty

2019/07/29 00:36

マクロの記述が問題なのか?マクロの処理プログラムに制限がかかっているのか?確認するために、シンプルなマクロ(変数を減らしたパターン)で確認してみてはいかがでしょう。
Walkingroad

2019/07/29 12:33

回答ありがとうございます。 そうですね、もしかするとミスがあの長いコードの中に隠れてるかもしれないので、短いプログラムを作ってみる(サンプルなどを利用する)のが良さそうですね。 ありがとうございます、また結果がわかり次第こちらに記載します。
Walkingroad

2019/08/25 01:13

お久しぶりです。 少し忙しく更新できておりませんでした。 今回更新履歴にも書かせていただきましたが、簡略化したMacroファイルを作成し確認しました。 結果としては、同様に「1 (ホストへの接続はされていないが、Tera Term へのリンクはされている。)」となり接続できませんでした。 「該当のソースコード」に追記しましたので、確認よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問