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

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

ただいまの
回答率

88.35%

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

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 1,722

Walkingroad

score 23

前提・実現したいこと

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

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

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

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


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

該当のソースコード

;=========================================================================
; 使用変数
;=========================================================================
username = ''
portnum = '50500'
pattern = '^([\w-]+)'
size = 0

folderpath = '.\''
foldername = 'passdir'
passwdfile = 'passwd_'

logfoldername = 'log'
logfullpath = ''
logfilename = 'log_'



;=========================================================================
; 接続先ホスト指定(変更箇所)
;=========================================================================
hostname = '接続先のアドレス'

;=========================================================================
; パスワード情報保管先作成
;=========================================================================
filestat foldername size
if result == -1 then
    foldercreate foldername
endif

;=========================================================================
; パスワード情報ファイル名・格納先文字列作成
;=========================================================================
strmatch hostname pattern
strconcat passwdfile matchstr
strconcat passwdfile '.dat'

strconcat folderpath foldername
strconcat folderpath '\'
strconcat folderpath passwdfile

;=========================================================================
; ログ保管先作成
;=========================================================================
getdir logfullpath

strconcat logfullpath '\'
strconcat logfullpath logfoldername

filestat logfullpath size
if result == -1 then
    foldercreate logfullpath
endif

strconcat logfullpath '\'
strconcat logfullpath matchstr

filestat logfullpath size
if result == -1 then
    foldercreate logfullpath
endif

;=========================================================================
; ログイン処理
;=========================================================================
inputbox 'Login Username:' 'Enter Username'

strlen inputstr

if result <= 0 then
    messagebox 'ユーザ名が確認できなかったため、処理を終了します。' 'ログイン操作中止'
    end
endif

strconcat username inputstr

getpassword folderpath username userpasswd

filenamebox '公開鍵の選択' 0 'C:\'
strconcat keyfilepath inputstr

msg = hostname
strconcat msg ':'
strconcat msg portnum
strconcat msg ' /ssh /2 /auth=publickey /user='
strconcat msg username
strconcat msg ' /passwd='
strconcat msg userpasswd
strconcat msg ' /keyfile='
strconcat msg keyfilepath

messagebox msg 'connection setting'

connect msg

if result <> 2 then 
    messagebox result 'Result'
    messagebox 'It could not be connected.' 'Connection Error' 
    end 
endif

timeout = 10 
wait '$' '#' 
if result = 0 then 
    disconnect 
    end 
endif

;=========================================================================
; ログ作成処理
;=========================================================================
getdate datestr '%Y%m%d'
gettime timestr '%H%M%S'

strconcat logfilename hostname
strconcat logfilename '_'

strconcat logfilename datestr
strconcat logfilename timestr
strconcat logfilename '_'

strconcat logfilename username
strconcat logfilename '.log'

messagebox logfullpath 'logfullpath'

changedir logfullpath
logopen logfilename 0 1 0 1


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

username = '(ユーザ名)'
password = '(パスワード)'
hostname = '(ホスト名 or IPアドレス)'
keyfile = '(秘密鍵指定)'

msg = hostname
strconcat msg ':22 /ssh /auth=publickey /user='
strconcat msg username
strconcat msg ' /keyfile='
strconcat msg keyfile
strconcat msg ' /passwd='
strconcat msg password
connect msg

if result <> 2 then 
    messagebox result 'Result'
    messagebox 'It could not be connected.' 'Connection Error' 
    end 
endif

timeout = 10 
wait '$' '#' 
if result = 0 then 
    disconnect 
    end 
endif

試したこと

・ポート番号を「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

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/07/29 09:36

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

    キャンセル

  • 2019/07/29 21:33

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

    キャンセル

  • 2019/08/25 10:13

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

    キャンセル

0

マクロの connect msg の前に

var2clipb msg
messagebox msg "msg"

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

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

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/11/24 15:13

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

    キャンセル

  • 2019/11/24 15:46

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

    キャンセル

  • 2019/11/25 14:36

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

    キャンセル

  • 2019/11/25 15:30

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

    キャンセル

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

  • ただいまの回答率 88.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る