Quantcast
Channel: SSH接続 | Tera Term(テラターム)の便利な使い方
Viewing all 14 articles
Browse latest View live

TeraTermマクロサンプル-SSH自動ログイン(パスワード入力版)

$
0
0

Tera Term(テラターム)のマクロ機能を利用し、SSHプロトコル(パスワード認証) でサーバ等に自動ログイン+アルファ(ちょっとだけセキュリティを考慮)のテラタームマクロをご紹介します。

これまで紹介してきたマクロでは、TTLファイルに直接パスワードを記述していました。(これセキュリティ管理的にはマズイですよね!)

そこでここでは、接続先ホスト情報とユーザ名はTTLファイルに直接記述し、パスワードはプロンプトから入力するタイプのマクロを解説していきます。

パスワード入力には、TTLコマンドの「inputbox」ではなく、「passwordbox」を利用してパスワード入力を行います。

スポンサーリンク

SSH自動ログインマクロ(passwordboxを使用)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
;=========================================================== 
; Filename    : ssh_connect-05.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/04/03 
; modified    : 
;=========================================================== 
;; 接続報ホスト/ユーザ名設定 
HOSTADDR = '接続先IPアドレス' 
USERNAME = 'ユーザ名' 
;=========================================================== 
;; ①接続先ホストのパスワードを入力 
MASSAGE = 'HOST : ' 
strconcat MASSAGE HOSTADDR 
strconcat MASSAGE ' / USER NAME : ' 
strconcat MASSAGE USERNAME 
passwordbox MASSAGE 'Please input a password.' 
PASSWORD = inputstr
 
;; ②入力確認(パスワードが入力されていない場合マクロ終了) 
strcompare PASSWORD '' 
if result=0 then 
    messagebox 'A password is not input.' 'Input error' 
    end 
endif
 
;; ③コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD
 
;; ④接続 
connect COMMAND
 
;; ⑤接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 
if result <> 2 then 
    messagebox 'It could not be connected.' 'Connection Error' 
    end 
endif
 
;; ⑥接続判定2(10秒以内にプロンプトが表示されない場合TeraTerm終了) 
timeout = 10 
wait '$' '#' 
if result=0 then 
    end 
endif
 
;; ⑦ホスト名表示 
sendln 'hostname' 
wait '$' '#'
 
;; ⑧マクロ終了 
end

マクロ内容の解説

①接続先ホストのパスワードを入力

接続先ホストのパスワードを入力のエリアでは、接続先のIPアドレス、及び接続ユーザ名を表示したメニューからパスワードを入力します。
passwordboxを利用した入力例

パスワード入力には「passwordbox」コマンドを使用します。

通常入力時に使用する「inputbox」を使用すると、入力した文字がそのまま表示されますが、「passwordbox」を使用すると入力した文字が「********」で表示されます。 (一種のセキュリティ対策ですね!)
inputboxを利用した入力例

⇒ 「passwordbox」コマンドの詳細はこちらを参照ください

②入力確認(パスワードが入力されていない場合マクロ終了)

入力確認のエリアでは、パスワードが入力された事を確認しています。何も入力しないで「OK」を押した場合にマクロを終了させています。

③コマンド組立て ④接続

⇒ コマンド組立て・接続のエリアの解説はここを参照

⑤接続判定1(接続出来ない場合はメッセージを表示しマクロ終了)

接続判定1エリアでは、「connect」のリンクと接続の状態を確認しています。

「connect」すると、システム変数「result」に以下の値が格納されます。

値 状態
0 Tera Term とリンクされていない。
1 ホストへの接続はされていないが、Tera Term へのリンクはされている。
2 リンクおよび接続両方ともされている。 ←正常に接続

値「2」がホストに正常に接続された状態なので「2」以外の場合は、異常と判断してマクロを終了させています。⇒ 「connect」コマンドの詳細はこちら

⑥接続判定2(10秒以内にプロンプトが表示されないとTeraTem終了)

接続判定2エリアでは、接続後(ログインは正常に終了)にプロンプトが表示されない場合(システムの重い時等)に10秒待ってもプロンプトが表示されない場合にマクロ&TeraTermを終了させています。

これは、後々紹介するマクロで必要になってくる機能です。

⑦ホスト名表示

「sendln」コマンドを使用して、コンソールで「hostname」のコマンドを実行します。

⑧マクロ終了

自動ログインが完了するとマクロ機能を終了します。マクロを終了してもセッションは維持され、通常のコンソール操作が継続して行えます。

おわりに

今回ご紹介したテラタームマクロは、管理対象サーバの接続するユーザ名は同じだが、パスワードがサーバによって違う場合に有効なマクロになります。まあ何かのお役にでも立てれば幸いです。


SSH公開鍵暗号化方式-Tera Termで秘密鍵・公開鍵の作成

$
0
0

ここでは、Tera Term(テラターム)を使用し、SSH公開鍵暗号化方式でログインする際に使用する秘密鍵、及び公開鍵の作成方法について解説していきたいと思います。

公開鍵暗号化方式とは、プレーンテキストによるパスワード認証に代わる認証方式で、より安全にユーザー認証ができる仕組みとなります。

認証の仕組みについては、ここでは割愛させていただきます。(ちょっと長くなるので)ネット上にの至る所に情報が出ていますのでご確認ください。

SSHには、SSH1とSSH2の二つのバージョンが存在します。以前SSH1ではRSA公開鍵暗号を、SSH2ではDSA公開鍵暗号が使われてきました。

暗号化の手法としてはDSAよりRSAの方が安全性が高いとも言われています。

しかしSSH2では特許の問題からRSAの使用が制限されており、その問題を回避するためにDSAが採用されていた経緯があります。その特許は2000年9月で失効し、それ以降はSSH2でもRSAを用いた暗号化が主流となっています。

それでは、TeraTermを使って公開鍵認証方式ログインで使用する秘密鍵・公開鍵(RSA暗号方式を用いた)を作成していきます。

スポンサーリンク

秘密鍵・公開鍵の作成

TeraTermを起動し「設定」メニューから「SSH鍵生成」を選択します。 
「設定」メニューから「SSH鍵生成」を選択

鍵の種類:RSA ビット数:2048(デフォルト)で「生成」をクリックします。
SSH鍵生成画面

「鍵を生成しました」のメッセージが表示され、鍵が作成されました。 
「鍵を生成しました」のメッセージで作成完了

公開鍵・秘密鍵の保存

まずは、公開鍵を保存します。 (任意のフォルダに保存) 
公開鍵を保存 公開鍵を任意のフォルダに保存

続いて秘密鍵を保存していきます。鍵のパスフレーズ部分にパスワードを入力します。設定しない=ノンパスワードでも可能ですが、セキュリティ向上のために設定しておく事をおススメします
秘密鍵のパスワード設定

パスフレーズの入力後、秘密鍵を保存します。 (任意のフォルダに保存) 
秘密鍵を保存 秘密鍵を任意のフォルダに保存

id_rsa.pub」が公開鍵、「id_rsa」が秘密鍵として保存されました。これでSSH公開鍵認証ログインで使用する鍵の生成は完了です。

おわりに

次回は、ここで生成した秘密鍵・公開鍵を用いた接続を行うために、接続するサーバ側の環境整備について解説したいと思います。(SSH接続を受けるサーバの設定になります!)
⇒ SSH公開鍵暗号化方式-サーバ側(接続受け側)の設定

SSH公開鍵暗号化方式-サーバ側(接続受け側)の設定

$
0
0

前回、Tera Term(テラターム)を使用して、公開鍵認証ログインに用いる公開鍵、及び秘密鍵を作成しました。

公開鍵認証でログインするには、接続するサーバ側でのSSH(Secure Shell)サービス設定変更、及び作成した公開鍵をサーバ所定の保存先に追加する作業が必要となります。

ここでは、それらの設定方法についてご紹介していきます。

スポンサーリンク

接続先サーバ側SSHサービス設定変更

・設定ファイル

/etc/ssh/sshd_config

・変更箇所

以下3行のコメントを外します。
当方の環境では、デフォルトで有効になってましたが明示的に有効とします。
=============================== 
#RSAAuthentication yes
#PubkeyAuthentication yes
#AuthorizedKeysFile     .ssh/authorized_keys

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile     .ssh/authorized_keys
===============================

またパスワード認証ログインを無効にします。
===============================
#PasswordAuthentication yes

PasswordAuthentication no
===============================

サービス再起動

変更した内容を反映させるためにSSHサービスを再起動します。

;; SSHサービス再起動
# service sshd restart 
;; 又は 
# /etc/init.d/sshd restart

接続ユーザのホームディレクトリに公開鍵を配置

まず公開鍵を接続するユーザのホームディレクトリ配下に配置します。デフォルトでは「~/.ssh/authorized_keys」が公開鍵を追記するファイルになります。

「sshd_config」の「AuthorizedKeysFile」部分を変更している場合は、その設定にあわせる必要があります。

まずTeraTermで作成した公開鍵(id_rsa.pub)をユーザのホームディレクトリにアップロードしましょう。 アップする方法は以下を参照↓↓↓

⇒ Tera Term(SCP機能)を利用してのファイル転送(送信編)

そして[cat]コマンドを使用して所定のファイルに追記します。接続するユーザ、及びそのホームディレクトリで実行します。

$ cat id_rsa.pub >> ./.ssh/authorized_keys

「.ssh」のディレクトリが存在しない場合は、新規で作成してください。

$ mkdir .ssh 
$ chmod -R 700 .ssh

作成後「.ssh」ディレクトリのパーミッションを確認してください。所有者以外に何かしらの権限が付与されていると、下記エラーでログインできません。

Authentication refused: bad ownership or modes for directory /home/xxxx/.ssh

最後にファイルのアクセス権を変更します。(所有者のみ読めるようにします)

$ chmod -R 600 ./.ssh/authorized_keys

おわりに

以上で接続サーバ側の設定&公開鍵の配置作業は完了です。

次回は、Tera Termを使用して公開鍵認証でサーバへログインします。

⇒ SSH公開鍵暗号化方式-Tera Termで公開鍵認証ログイン

SSH公開鍵暗号化方式-Tera Termで公開鍵認証ログイン

$
0
0

前回までの設定で、公開鍵認証方式で使用する公開鍵・秘密鍵の作成、及び接続先サーバ側の設定(SSHサービス設定変更・公開鍵配置)が完了しました。
SSH公開鍵暗号化方式-Tera Termで秘密鍵・公開鍵の作成
⇒ SSH公開鍵暗号化方式-サーバ側(接続受け側)の設定

そこでここでは、Tera Termを使用した公開鍵認証でのログイン方法についてご紹介していきます。

公開鍵認証でのログイン

まず普通にTera Termを起動してみてください。起動するとデフォルトでは「プレインテキストを使う」にチェックが入って起動するはずです。
標準ではプレインテキストが選択される

公開鍵認証でログインするには、「RSA/DSA鍵を使う」のチェックボックスをONにし、「秘密鍵」をクリックし秘密鍵(id_rsa)の保存場所を指定します。

次にユーザ名、及び鍵を生成した際に入力したパスワードをパスフレーズ欄に入力し「OK」ボタンを押しサーバに接続します。
公開鍵認証時の設定箇所

無事接続できましたか?公開鍵認証ログインの準備は結構面倒でしたが、実際の接続は戸惑う事無く結構簡単に行えましたよね。

公開鍵認証ログインを使用すると、ローカルPCの秘密鍵が絶対に必要になりますので、パスワード認証に比べ格段にセキュリティが向上します(パスワード認証をオフにして公開鍵認証のみにした場合)ので是非設定しておきましょう。

しかし一点問題が・・・

接続するたびに「RSA/DSA鍵を使う」をチェックし「秘密鍵」を選択するのはとても面倒ですよね。TeraTermの設定で、公開鍵認証方式をデフォルトの接続方法にする事が可能ですので、その設定を合わせて行っておきましょう。

スポンサーリンク

公開鍵認証をデフォルト設定に変更

「設定」メニューから「SSH認証」を選択します。
「設定」メニューから「SSH認証」を選択

「RSA/DSA鍵を使う」のチェックボックスをON、秘密鍵(id_rsa)を選択し、ユーザ名に接続するユーザ名を入力ます。
ユーザ名と秘密鍵を設定

この状態で「設定」メニューから「設定の保存」を選択し、設定ファイル(TERATERM.INIファイル)を保存します。
「設定」メニューから「設定の保存」を選択 TERATERM.INIファイルを保存

これで次回のTera Term起動から公開鍵認証を使用したログイン方式が選択された状態で起動します。

ユーザ名・秘密鍵の欄は設定されていますので、パスフレーズを入力してから「OK」ボタンをクリックしサーバへ接続します。
次回からは公開鍵認証が標準になります

以上で、公開鍵認証ログインの設定は全て完了です。

おわりに

これまで、①公開鍵・秘密鍵の作成。②サーバ側の公開鍵認証設定。③TeraTermを使った手動での公開鍵認証ログインについて順を追って解説してきました。そこで次回は、Tera Termマクロを使用した公開鍵認証での自動ログインをご紹介したいと思います。
⇒ Tera Termマクロ-SSH公開鍵認証で自動ログイン

TeraTermを使ったサーバ接続(SSH編)

$
0
0

これまで、マクロや文字化け対策等々、Tera Term(テラターム)を便利に使える機能を中心に解説してきました。

しかし一番肝心な事を忘れていました。

そうなんです。一番使用頻度の高いと思われる、TeraTermを使用して手動操作でサーバへ接続(SSH/TELNET etc)する方法をご紹介するのを完全に失念していました。(何たる不覚!)

そこでここでは、Tera Termを起動する所から、SSH(Secure Shell)プロトコルを使用し、サーバへ接続する過程を詳しくご紹介していきます。

スポンサーリンク

Tera Termを使用してのサーバ接続(SSHプロトコル使用編)

まずはプログラムを起動。「スタート」-「プログラム(すべてのプログラム)」-「Tera Term」メニューから「Tera Term」を起動してください。

Tera Term:新しい接続画面が表示されます。
Tera Term:新しい接続画面 

サービス欄を確認します。サービスは「SSH」のチェックボックスをONにし、SSHバージョンは「SSH2」を選択します。(かなり古いサーバに接続する場合、SSHバージョンをSSH1に変更しないと接続できない場合があります)
サービス欄とTCPポートを確認

続いてTCPポート番号を確認します。通常SSH接続では「22」番ポートを使用します。しかしサーバによっては、この接続ポートを変更している場合もあります。 接続ポートが変更されている場合は、この番号を変更してください。 (ちなみにServersMan@VPSではデフォルトで3843を使用しています!)

ホスト欄に接続するサーバのIPアドレス、もしくはホスト名(名前解決が必要)を入力し、OKボタンをクリックします。
接続先情報を入力(IP or ホスト名)

SSH認証画面が表示されます。サーバに接続するユーザ名、及びパスフレーズを入力し「OK」をクリックしてください。(一番使われているであろう、ユーザ名・パスワードを使ったパスワード認証の場合です)
ユーザ名・パスフレーズを入力

ユーザ名、またはパスフレーズを間違えると「認証に失敗しました。再試行してください」のメッセージが表示されログインが失敗します。

もしパスワードを間違った場合は、再入力し「OK」をクリックしてください。もしもユーザ名を間違った場合は、ユーザ名の変更が出来ないので「接続断」をクリックし、最初から接続をやり直す事になります。
認証に失敗しました。再試行してください画面

正しく認証されると、サーバに接続したターミナル画面が表示されます。(何かしらの文字・プロンプトが表示されるかな?)
ログインするとプロンプトが表示?

「df」等のコマンドを入力してみてください。
ログイン後のdf実行結果

コマンド実行結果が表示され、正常に接続されている事が確認できます。

以上で、Tera Term&SSHプロトコルを使用してのサーバ接続は完了です。

SSH転送(ポートフォワード)でリモートデスクトップ接続

$
0
0

Tera Term(テラターム)のSSH転送(SSHポートフォワード)機能を利用した、便利な使い方をここでひとつご紹介したいと思います。

便利な使い方というのは、SSH接続したセキュアな経路を利用し、SSHサーバ(接続先)と同じセグメント(ルーティングが切られてあれば別のセグメントでもOK)にあるWindows機にリモートデスクトップで接続するといった使い方になります。

自宅サーバにリモートからSSH接続できる環境があれば、その暗号化されたセキュアな経路を利用し、自宅サーバ経由で同じセグメントにあるWindows機に、リモートデスクトップサービス経由で比較的安全に接続できる環境が簡単に構築できる事になります。
*自宅サーバにSSH接続出来る環境と、Windows機がリモートデスクトップ接続を受け付ける事が前提となります。(パーソナルファイヤーウォールの設定等注意が必要です)

スポンサーリンク

Tera Term(SSHクライアント)の設定

①まず自宅サーバに「Tera Term」を使用してSSH接続を完了します。

②続いて「設定」メニューから「SSH転送」を選択します。
「設定」メニューから「SSH転送」を選択

②「SSHポート転送」画面が表示されますので「追加」をクリックします。
SSHポート転送追加画面

③ローカルのポートに「13389」(これは任意のポート番号)。リモート側ホストに「自宅Windows機のローカルIPアドレス」。 ポート欄に「3389(デフォルト)」を入力し「OK」をクリックします。
SSHポート転送設定画面
*リモート側ホスト欄は、SSHサーバのIPアドレスではなく、自宅Windows機のローカルIPアドレスになりますのでお間違えなく!

④ポート転送画面に追加されました。これで設定完了です。
SSHポート転送確認画面

⑤「netstat」コマンドで、先ほど設定したポートの待ち受けが確認できます。一番下の「127.0.0.1:13389」部分が、今回の設定で追加された所です。 
SSHポート転送設定後の待ち受け確認

ローカルポートで「13389」のリッスン状態が確認できます。

リモートデスクトップで自宅Windows機に接続

①まずリモートデスクトップ接続を起動します。

②コンピュータ欄に「127.0.0.1:13389」を入力し、「接続」をクリックしてください。(接続先=Windows機のIPアドレスでは無いので、ご注意ください!)
リモートデスクトップ接続画面

③リモートデスクトップのログイン画面が表示されます。 ユーザ名・パスワードを入力し、通常通りログインしてみてください。
リモートデスクトップログイン画面

おわりに

SSH転送(SSHポートフォワード)を機能を利用すれば、暗号化された経路上を利用していろんなサービスを比較的安全に利用できます。

リモートデスクトップ以外にもいろんな使い方ができますので、是非利用してみてください。

TeraTermマクロでSSH多段接続(踏み台サーバ経由)を試みる

$
0
0

何かしらの理由(セキュリティの都合が多いかな?)で作業対象サーバに接続する際に、あるサーバを経由(踏み台サーバとかよく呼んでいます)して接続しないといけない事って結構あったりしませんか?(私の環境では結構あるんです)

踏み台サーバ経由のTeraTermマクロ

TeraTermなんかを使って一度踏み台サーバに接続して、さらにそこからSSHコマンドを実行して作業対象サーバにログインするのは結構面倒な作業ですよね。

そこで今回は「SSH多段接続(踏み台サーバ経由)」と銘うって、ひとつのTeraTermマクロを実行するだけで作業対象サーバへ接続できるマクロをご紹介したいと思います。

内容はメチャ簡単ですが、そこは突っ込み無しでお願いします。

またパスワードなんかもマクロの中に直書きしてますが、セキュリティ的にはまずいので「Tera Termマクロ-SSH自動ログイン(パスワード暗号化編)」なんかを参考に書き換えてもらえればと思います。(あえて分かりやすいように直書きにしています)

それでは早速マクロをご覧ください。

スポンサーリンク

SSH多段接続自動ログインマクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;============================================== 
; Filename    : ssh_connect-15.ttl
; Description : SSH Auto login
; Author      : junzou
; Created     : 2014/03/09
; modified    : 
;============================================== 
;; 踏み台・作業対象サーバ/ユーザ名/パスワード設定 
HOSTIP1st = '踏み台サーバIPアドレス'
USERNAME1st = '踏み台サーバ接続用ユーザ名'
PASSWORD1st = '踏み台サーバ接続用パスワード'
HOSTIP2nd = '作業対象サーバIPアドレス'
USERNAME2nd = '作業対象サーバ接続用ユーザ名'
PASSWORD2nd = '作業対象サーバ接続用パスワード'
;============================================== 
;; 踏み台サーバへSSH接続
;; ①接続用コマンド組立て
COMMAND = HOSTIP1st
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME1st
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD1st
 
;; ②踏み台サーバへ接続
connect COMMAND
 
;; ③プロンプトが表示されるのを待機
wait '$' '#'
 
;; 作業対象サーバへSSH接続
;; ④接続用コマンド組み立て
COMMAND = 'ssh '
strconcat COMMAND USERNAME2nd
strconcat COMMAND '@'
strconcat COMMAND HOSTIP2nd
 
;; ⑤作業対象サーバへ接続
sendln COMMAND
 
;; ⑥パスワード入力
wait 'password:'
sendln PASSWORD2nd
 
;; ⑦マクロ終了
end

 

マクロ内容の解説

特に詳細な説明は必要ありませんね!

「Tera Termマクロサンプル-SSH自動ログイン(接続情報固定版)」

「Tera Termマクロ-TELNET自動ログイン(接続ホスト・ユーザ・パスワード固定版)」辺りを眺めてもらうとほぼ理解出来ると思われます。

また踏み台サーバと作業対象サーバに同じユーザ・パスワードが存在する環境であればもう少し簡素化(変数を少なくする)する事ができますね。

次回はちょっとセキュリティ的に進化させて、SSH多段接続で公開鍵認証なんかを用いた接続方法をご紹介したいと思います。

TeraTerm SSH転送(ポートフォワード)機能を利用した多段接続

$
0
0

前回の記事では、超シンプルなTera Termマクロを使用したSSH多段接続(踏み台サーバを経由した接続)をご紹介しました。

ここではちょっとステップアップして、公開鍵認証を使用したSSH多段接続について触れてみようと思います。

一番簡単なのは踏み台サーバに鍵を置いて、それを使用し作業対象サーバに接続する方法です。しかし中には踏み台サーバに作業対象サーバに接続するための公開鍵なんか置きたくないと言われる方もいらっしゃるのでは???

そこでそれらを解決し、便利に使えるTeraTermの機能が「SSHポート転送(ポートフォワード)」なんです。

SSH転送を用いたSSH多段接続

簡単に言うと3つの工程で済んでしまうんです!

  1. 事前にTeraTermのSSHポート転送の設定を行いコンフィグ(TERATERM.INI)を保存しておく
  2. TeraTermを使用し、踏み台サーバへ接続
  3. 1で設定したローカルPCの接続ポートに接続(通常の公開鍵での接続で)

それでは設定方法についてご紹介してきます。

スポンサーリンク

SSH転送(ポートフォワード)の設定方法

①「設定」-「SSH転送」を選択。SSHポート転送画面が表示されます。
SSHポート転送設定画面

②「SSHポート転送」画面の「追加」をクリック 。
「ポート転送を行う向きの選択」画面が表示されます。
ポート転送を行う向きの選択画面

③ローカルのポート・リモート側アドレス・ポートを設定。ローカルのポートは任意の番号を入力。リモート側ホストには作業対象サーバのIPアドレスとSSH接続ポート(通常は22)を入力。「OK」を2回押して設定完了です。
ローカルポートとリモートサーバ情報を入力

SSHポート転送設定完了

④最後に忘れず、設定ファイル(コンフィグ)の保存を行ってください。

以上で準備完了です。

コマンドプロンプトから「netstat」コマンドで待ち受け状態を確認すると、上記で設定したポート番号でLISTEN状態が追加されたのが確認できると思います。
netstat画面@SSH転送待ち受け

踏み台&SSH転送を用いた公開鍵での接続方法

①まず踏み台サーバへSSH接続します。(通常のSSH接続です)

②ここで作業対象サーバへ多段+公開鍵でのSSH接続を行ないます。
ローカルホストの先ほど設定したポート番号に接続します。(ここ重要)
SSH転送でのSSH多段接続

③後は通常の公開鍵での接続と手順は一緒です。
SSH転送でのSSH多段&公開鍵接続

メチャクチャ簡単でしたよね。

セキュリティとかを考えると、踏み台サーバに鍵を置くのはちょっと躊躇してしまいます。TeraTermのSSHのポート転送(ポートフォワード)機能を使用して、少しでも安全な環境で接続を行いましょう。

しかし作業対象サーバに接続する度に何かしらの情報を入力しないといけないのは面倒くさいですよね!そこで次回は、これらの内容をTeraTermマクロを用いて実施してみたいと思います。お楽しみに!


TeraTermマクロでポートフォワード&踏み台サーバ経由での公開鍵認証を試みる

$
0
0

前回の記事では、TeraTermのSSH転送(ポートフォワード)機能を利用した手動でのSSH公開鍵認証の設定・手順についてご紹介しました。
⇒ TeraTerm SSH転送(ポートフォワード)機能を利用した多段接続

しかし接続の都度、ユーザ名等の情報を入力するのは面倒ですよね。(まあ、いつものパターンです!)

そこで、ここでは前回手動で行った公開鍵認証での接続部分を、TeraTermのマクロ機能で実現したいと思います。

SSH転送(ポートフォワード)をマクロで

マクロの前提条件として以下の設定等が必要になります。
ポートフォワードの設定は事前に行っておき、コンフィグを保存しておく。
作業対象サーバのIPアドレス・接続先ポート「22」(SSHの待ち受けポート)
テラタームの待ち受けポートは「10022」
SSHポート転送設定画面

この辺りは前回の記事を確認し、設定を行なってみてください。
⇒ TeraTerm SSH転送(ポートフォワード)機能を利用した多段接続

それでは早速マクロの中身を眺めてみましょう。

スポンサーリンク

SSH多段接続&公開鍵認証自動ログインマクロ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;============================================== 
; Filename    : ssh_connect-16.ttl
; Description : SSH Auto login
; Author      : JUNZOU
; Created     : 2014/03/29
; modified    : 
;============================================== 
;; 踏み台・作業対象サーバ/ユーザ名/パスワード設定 
HOSTIP1st = '踏み台サーバIPアドレス'
USERNAME1st = '踏み台サーバ接続用ユーザ名'
PASSWORD1st = '踏み台サーバ接続用パスワード'
HOSTIP2nd = '127.0.0.1'
USERNAME2nd = '作業対象サーバ接続用ユーザ名'
PASSWORD2nd = '作業対象サーバ接続用パスワード'
KEY_FILE = '秘密鍵のフルパス'
;============================================== 
;; 踏み台サーバへSSH接続
;; ①接続用コマンド組立て
COMMAND = HOSTIP1st
strconcat COMMAND ':22 /ssh /2 /auth=password /user='
strconcat COMMAND USERNAME1st
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD1st
 
;; ②踏み台サーバへ接続
connect COMMAND
 
;; ③踏み台サーバへのリンクを切断(セッションは維持したままです)
unlink 
 
;; 作業対象サーバへSSH公開鍵認証接続
;; ④接続用コマンド組み立て
COMMAND = HOSTIP2nd
strconcat COMMAND ':10022 /ssh /auth=publickey /user='
strconcat COMMAND USERNAME
strconcat COMMAND ' /passwd='
strconcat COMMAND PASSWORD
strconcat COMMAND ' /keyfile='
strconcat COMMAND KEY_FILE
 
;; ⑤作業対象サーバへ接続
connect COMMAND
 
;; ⑥マクロ終了
end

マクロの解説

まあ難しい所は一切ありませんね。

このマクロのツボは、項番③の部分で「unlink」を使用する事です。

unlink:現在のTeraTermウインドウとマクロ間のリンクを断つ

一度踏み台サーバに接続し、SSH転送(ポートフォワード)が実施できる準備を行います。そこで接続されている踏み台サーバへのリンクを「unlink」で切り(セッションは維持されたままです。あくまでTeraTermとのリンクを切断します)、そこで別に新しいセッションを開いて、作業対象サーバに公開鍵認証で接続しようといったマクロになります。

公開鍵でパスワードなんか設定していなければ、その部分はコメントアウトしてご利用ください。

また一点だけ注意点があります。踏み台サーバのセッションと作業用対象サーバの2セッション(画面が2つ)起動します。踏み台サーバのセッションを切断すると、作業対象サーバへのセッションも切断されますのでご注意ください。

まあ、非常に簡単でしたね。

このマクロを使用すると踏み台サーバに鍵を配置せずに、自PCに保存している鍵を利用して踏み台サーバ経由の接続が可能となります。まあ機会があれば利用してみてください。何かの参考にでもなれば幸いです。

TeraTermでSSH接続が出来ない!トラブルシューティングやってみました

$
0
0

最近「Tera Term(テラターム)を使用して、サーバに接続しようとしているんですが、うまく繋がらないんです!」って質問を数多く受けるんです。

原因の多くが、サーバ側の設定(アクセス制限)で接続出来ない場合が多いみたいですが、中にはSSH認証(ユーザ名・パスフレーズ入力画面)までは表示されるけど、「ユーザ名」「パスフレーズ」を入力し「OK」ボタンを押しても何も動かないといった、何となく微妙なパターンもあるみたいです。

そこでここでは「SSH接続トラブルシューティング」と銘うって、TeraTermを使用してサーバへ接続できないであろう6パターンを用意し、それぞれがどんな表示・動作になるのかを実験&纏めてみました。

今回、以下の環境でテストを実施しています。
接続先サーバ:さくらのVPS CentOS6.4 64bit openssh-server-5.3p1
クライアント:Windows7 32bit + Tera Term version 4.83

それでは、SSH接続が出来ないパターンを確認していきましょう。

スポンサーリンク

①SSHサービスが未起動の場合(サーバ側の問題)

まずは、接続先サーバのSSHサービスが起動していない場合になります。

「新しい接続」画面から「ホスト欄」に、接続先サーバのIPアドレス、又はホスト名(名前解決が必要)を入力し「OK」ボタンを押すと・・・
TeraTerm新しい接続画面

「接続中」の画面(画像左)が表示されますが、ターミナル上には何も表示されません。しばらくすると「Tera Term:エラー / 接続が拒否されました」のポップアップ(画像右)が表示されました。
TeraTerm接続中の画面 接続が拒否されましたのポップアップ

接続先のサーバ側で、サービスが起動していないにもかかわらず「接続が拒否されました」のメッセージ表示。何となくファイアーウォールなんかでブロックされているよな感じを受けますね。

ユーザ名・パスフレーズの入力間違い(クライアント側の問題)

続いてクライアント側の入力ミス。SSH認証の画面で「ユーザ名」又は「パスフレーズ」の入力を間違っている場合になります。

「ユーザ名」「パスフレーズ」を入力し「OK」ボタンを押すと、「認証に失敗しました。再試行してください」のメッセージ(画像右)が表示されます。もちろんの事ですが、「ユーザ名」「パスフレーズ」のどちらを間違っているかは分かりません。
TeraTerm SSH認証画面 認証に失敗しました。再実行してくださいのメッセージ

パスワードを間違っている場合は再入力。ユーザ名を間違っている場合は、再度新しい接続からやり直してください。

何回も「OK」ボタンを押していると、以下のポップアップが表示されました。
想定外のメッセージ?

まあ単純な「ユーザ名」「パスフレーズ」入力ミスの場合でした。

iptablesでブロックされていた場合(サーバ側の設定の問題)

続いて、接続先サーバ側の「iptable(簡易FW)」でブロックされている場合になります。

「新しい接続」画面から「ホスト」欄に接続先のホスト情報(ホスト名・IPアドレス等)を入力し、「OK」ボタンを押します。
 TeraTerm新しい接続画面

「接続中」の画面(画像左)が表示されますが、コンソール上には何も表示されません。しばらく(私の環境で約20秒)すると「Tera Term:エラー / ホストに接続できません」のポップアップ(画像右)が表示されました。
TeraTerm接続中でしばらく停止 ホストに接続できませんのポップアップ

hosts.denyでブロックされている場合(サーバ側の設定の問題)

「TCPWrappers(hosts.deny)」でブロックされている場合になります。

「TCPWrappers」とは、ネットワークを利用した接続の許可・許否を判断し、接続制御(制限)を行います。

「新しい接続」画面から「ホスト」欄に、接続先のホスト情報(ホスト名・IPアドレス等)を入力し「OK」ボタンを押すと・・・
TeraTerm新しい接続画面

「SSH認証」の画面が表示されます。「ユーザ名」「パスフレーズ」を入力し「OK」を押すものの、何の反応もありませんでした。
SSH認証画面でOKが押せない

*ブログアップ前に動作を再確認した所、「OK」ボタンは押せて、画面が「未接続」の状態で変わらない状態になりました。(昨日までは「OK」が押せなかったのですが、原因は不明です・・・)

接続先ポート番号が間違っている場合(クライアント設定の問題)

最近流行のVPSとかで、セキュリティ向上のために、SSHサービスの待ち受けポートを変更している場合があります。その場合「TCPポート」欄を変更しないといけないのですが、デフォルトの「22」のまま接続すると・・・
TeraTerm新しい接続画面

「接続中」の画面(画像左)が表示されますが、コンソール上には何も表示されません。しばらくすると「Tera Term:エラー / ホストに接続できません」のポップアップ(画像右)が表示されました。
TeraTerm接続中表示の画面 ホストに接続できませんでしたポップアップ

ご覧の通り「iptables(簡易ファイアーウォール)」でブロックされいるのと同じ結果になりました。ちょっと判別が難しいかもしれませんね。

公開鍵認証しか受け付けないサーバにパスワード認証で接続

最後におまけで、公開鍵認証でしか接続できないように設定しているサーバに、パスワード認証でのログインを試みてみました。
TeraTerm新しい接続画面

「認証に失敗しました。再試行してください」のメッセージと共に、「RSA/DSA/ECDSA/ED25519鍵を使う」がチェックされました。
TeraTerm SSH認証画面 RSA/DSA/ECDSA/ED25519鍵を使うがチェックされる

この動作だと、このサーバは「公開鍵認証」しか受け付けていないのかもと、判断できるかもしれませんね。

おわりに

今回6種類のSSH接続が出来ないパターンをご紹介しました。(こんなパターンはどうなの?っていうのがありましたら是非コメント願います!)

接続するOSの種類やサーバ等の環境によって、これとはまた違った表示・動作等があるかもしれませんが、まあ何かの参考にでもなれば幸いです。

TeraTermマクロサンプル-SSH自動ログイン(接続情報固定版)

$
0
0

Tera Term(テラターム)のマクロ機能+SSHプロトコルを用いた自動ログインマクロで、もっとも基本的な形のマクロをご紹介させて頂きます。

通常サーバにSSH接続するには、接続先ホストのIPアドレス・接続ユーザ名・パスワードなどの接続情報が必要ですよね。

今回ご紹介するのは、サーバ接続に必要な情報をマクロ言語TTLファイルに直接記述したバージョンのテラターム自動ログインマクロになります。(セキュリティ的にマズイとかいうのは、いいっこ無しでお願いします!)

このマクロを実行する事により、ユーザ名・パスワード等の情報を入力する事無く、サーバに自動ログインする事が可能となります。管理する対象機器が少ない場合だと、機器毎にマクロファイルを作っておくと便利かもしれませんね。

*TTLファイルとは
Tera Termのマクロ言語TTL(Tera Term Language)で作成されたファイルで、通常拡張子が「*.ttl」で保存されているファイルの事です。

SSH自動ログインマクロ(接続情報固定)

;============================================= 
; Filename    : ssh_connect-01.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/03/20 
; modified    : 
;============================================== 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '接続先IPアドレス' 
USERNAME = 'ユーザ名' 
PASSWORD = 'パスワード' 
;============================================== 
;; ①コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; ②接続 
connect COMMAND

;; ③マクロ終了 
end

マクロ内容の解説

項番①コマンド組立て

コマンド組立てエリアでは、SSH接続(パスワード認証)に必要な情報の文字列を作成しています。

変数「COMMAND」に「strconcat」コマンドを使用し文字を継ぎ足していく事で接続するための文字列を作成しています。

接続先ホストにIPアドレスを設定した場合は、以下のような文字列が作成される事になります。(xxx.xxx.xxx.xxx部分は、IPアドレス)

;;作成する文字列
xxx.xxxx.xxx.xxx:22 /ssh /2 /auth=password /user=#### /passwd=####

「strconcat」コマンドは、文字列を継ぎ足す機能があります。

SSH接続コマンドで明示的に接続ポートとSSHバージョンを指定していますが、特に指定しなくても接続は可能です。

以下ポート番号、SSHバージョンを指定する際の記述例です。ご参考にどうぞ。

;;コマンド例
connect 'xxx.xxx.xxx.xxx /ssh /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx /ssh /1 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx /ssh /2 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx:22 /ssh /1 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=USER /passwd=PASS'

最近では、セキュリティ強化で接続ポートを変更しているVPSサーバもありますのでその際は、接続ポートを変更してください。

項番②接続

接続のエリアでは、項番①で作成した変数(文字列)「COMMAND」を使用し、「connect」コマンドで対象ホストへSSH接続を行います。

項番③マクロ終了

自動ログインが完了するとマクロ機能を終了します。

セッションは維持されたままで、通常のコンソール操作が可能となります。

おわりに

次回は、接続する管理対象サーバの接続ユーザ名・パスワードが固定されている環境で威力を発揮するマクロ。接続ホストのIPアドレス、又はホスト名(名前解決が必要)を入力する事で、対象サーバに自動ログインするマクロをご紹介します。

⇒ Tera Termマクロサンプル-SSH自動ログイン(接続ホスト入力版)

TeraTermマクロサンプル-SSH自動ログイン(接続ホスト入力版)

$
0
0

Tera Term(テラターム)のマクロ機能+SSHプロトコル(パスワード認証)を用いた自動ログインマクロで最も基本的な形のマクロをご紹介しました。

ここでは、一歩進んだマクロを解説していきます。

今回ご紹介するのは、以下のような特徴のマクロになります。

①接続先ホスト情報はポップアップメニューから入力
②接続ユーザ名/パスワードは、TTLファイルに直接記述

このマクロを実行する事により、メニューから接続先ホスト情報を入力する事で、ユーザ名・パスワードを入力する事無くサーバに自動でログインする事が可能となります。

全ての管理対象ホストに、同じ管理用ユーザ・パスワードが設定されている場合に威力を発揮するマクロとなっています。

*TTLファイルとは
Tera Termのマクロ言語TTL(Tera Term Language)で作成されたファイルで、通常拡張子が「*.ttl」で保存されているファイルの事です。

SSH自動ログインマクロ(パスワード認証版)

============================================== 
; Filename    : ssh_connect-02.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/03/20 
; modified    : 
;============================================== 
;; ユーザ名/パスワード設定 
USERNAME = 'ユーザ名' 
PASSWORD = 'パスワード' 
;============================================== 
;; ①-1、接続先ホスト情報入力 
inputbox 'Please input an IP address or the host name.' 'Host information input' 
HOSTADDR = inputstr 
;; ①-2、入力確認(ホスト名 or IPアドレスの入力が無い場合終了) 
strlen HOSTADDR 
if result = 0 then 
    messagebox 'Host information is not input.' 'Input error' 
    end 
endif

;; ②コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; ③接続 
connect COMMAND

;; ④マクロ終了 
end

マクロ内容の解説

項番①接続先ホスト入力・確認

項番①-1、接続先ホスト入力のエリアでは、入力ダイアログボックスを表示し、接続先ホストのIPアドレス、又はホスト名(名前解決が必要)を入力します。 
接続ホスト情報入力ポップアップ

項番①-2では、入力確認を行っています。もし何も入力されずに「OK」が押された場合、以下のエラーを表示しマクロを終了します。
接続情報入力エラーポップアップ

項番②コマンド組立て

コマンド組立てエリアでは、SSH接続(パスワード認証)に必要な文字列を作成しています。

変数「COMMAND」に「strconcat」コマンドを使用し文字を継ぎ足していく事で接続するために必要な文字列を作成しています。

接続先ホストにIPアドレスを設定した場合は、以下のような文字列が作成される事になります。(xxxは、IPアドレス)

;;作成する文字列
xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=#### /passwd=####

SSH接続コマンドで明示的に接続ポートとSSHバージョンを指定していますが、指定しなくても接続は可能です。

以下ポート番号、SSHバージョンを指定する際の記述例です。ご参考にどうぞ。

;;コマンド例
connect 'xxx.xxx.xxx.xxx /ssh /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx /ssh /1 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx /ssh /2 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx:22 /ssh /1 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=USER /passwd=PASS'

最近ではセキュリティ強化で接続ポートを変更しているVPSサーバ等もありますので、その際は接続ポートを変更してみてください。

項番③接続

接続のエリアでは、項番①で作成した変数(文字列)「COMMAND」を使用し、「connect」コマンドで対象ホストへSSH接続を行います。

項番④マクロ終了

自動ログインが完了するとマクロ機能を終了します。マクロを終了してもセッションは維持され、通常のコンソール操作が可能となります。

おわりに

SSH接続には、パスワード認証の他にもいろんな認証方式を兼ね揃えています。「②コマンド組立て」を修正する事で、他の認証方式にも対応可能ですので、ご自身の環境に合わせて変更してみてください。

TeraTermマクロサンプル-SSH自動ログイン(接続先選択版)

$
0
0

Tera Term(テラターム)のマクロ機能を利用し、SSHプロトコル(パスワード認証 = ユーザ名+パスワードでログインを行う接続方法)でサーバに自動ログインするマクロをご紹介します。

今回ご紹介するのは、以下のような特徴のマクロになります。

①接続先ホスト情報は、あらかじめ設定している表示メニューから選択
②接続ユーザ名/パスワードは、TTLファイルに直接記述

このテラタームマクロを実行する事により、ポップアップメニューから接続先ホストを選択する事で、ユーザ名、及びパスワードを入力する必要なくサーバに自動でログインする事が可能となります。

管理対象サーバが少なく、また接続先ホスト全てに同じ管理用ユーザが設定されている場合に便利になってくるマクロです。

*TTLファイルとは
Tera Termのマクロ言語TTL(Tera Term Language)で作成されたファイルで通常拡張子が、*.ttlで保存されているファイルの事です。

SSH自動ログインマクロ

;============================================ 
; Filename    : ssh_connect-03.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/03/20 
; modified    : 
;============================================ 
;; ユーザ名/パスワード設定 
USERNAME = 'ユーザ名' 
PASSWORD = 'パスワード' 
;============================================ 
;; ①接続先ホスト選択 
MESSAGE = 'Please choose a connection host.'#13#13 
strconcat MESSAGE ' 1 - host01(xxxxxサーバ)'#13 
strconcat MESSAGE ' 2 - host02(yyyyyサーバ)'#13 
strconcat MESSAGE ' 3 - host03(zzzzzサーバ)' 
inputbox MESSAGE 'Connection host choice'

;; 文字列を数字に変換 
str2int HOSTNUMB inputstr

;; ②接続ホストIPアドレス指定 
if HOSTNUMB = 1 then 
    HOSTADDR = 'xxx.xxx.xxx.xxx' 
elseif HOSTNUMB = 2 then 
    HOSTADDR = 'xxx.xxx.xxx.xxx' 
elseif HOSTNUMB = 3 then 
    HOSTADDR = 'xxx.xxx.xxx.xxx' 
else 
    messagebox 'The unjust number was input.' 'Input error' 
    end 
endif

;; ③コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; ④接続 
connect COMMAND

;; ⑤マクロ終了 
end

マクロ内容の解説

項番①接続先ホスト選択

接続先ホスト選択エリアでは、ホスト一覧のポップアップメニューを表示し、接続したいホストの番号を入力する事で、接続先ホストを選択します。
接続ホスト選択画面

項番②接続ホストIPアドレス指定

接続先ホストIPアドレス指定エリアでは、項番①接続先ホスト選択で入力された番号によって、対象ホストのIPアドレスを指定しています。

ここでひとつ問題が!

入力された番号は「inputstr」に文字列として入力されています。

入力した番号によって「IPアドレス」を指定するのですが、if文の条件分岐では、数字で判定を行っています。

そのまま進めると「Type mismatch.」のマクロエラーになってしまいます。

そこで「str2int」コマンドを使用し、「str2int HOSTNUMB inputstr」の行で文字列を数字に変換を行ってからif文で条件分岐を行います。

今回あえてわかりやすいように、選択するホスト名やIPアドレスをマクロ内に直接記述しています。マクロ内の「IPアドレス」部分は各自で修正してください。

変数を使って記述すると、もっと見やすいマクロができるかもしれませんね。

項番③コマンド組立て

コマンド組立てエリアでは、TeraTermマクロでSSH接続(パスワード認証)に必要な情報の文字列を作成しています。

変数「COMMAND」に「strconcat」コマンドを使用し文字を継ぎ足していく事で接続するための文字列を作成しています。

接続先ホストにIPアドレスを設定した場合は、以下のような文字列が作成される事になります。(xxx.xxx.xxx.xxx部分は、IPアドレスです)

;;作成する文字列
xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=#### /passwd=####

TTLコマンド「strconcat」コマンドは、文字列を継ぎ足す機能があります。
⇒ 「strconcat」コマンドの詳細はこちらを参照してください

SSHの接続で明示的に接続ポートとSSHバージョンを指定していますが、指定しなくても接続は可能です。

以下ポート番号、SSHバージョンを指定する際の記述例です。ご参考にどうぞ。

;;コマンド例
connect 'xxx.xxx.xxx.xxx /ssh /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx /ssh /1 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx /ssh /2 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx:22 /ssh /1 /auth=password /user=USER /passwd=PASS'
connect 'xxx.xxx.xxx.xxx:22 /ssh /2 /auth=password /user=USER /passwd=PASS'

最近ではセキュリティ強化で接続ポートを変更しているVPSサーバ等もありますので、その際は接続ポートを変更してみてください。

項番④接続

接続のエリアでは、項番①で作成した変数(文字列)「COMMAND」を使用し、「connect」コマンドで対象ホストへSSH接続を行います。

項番⑤マクロ終了

自動ログインが完了するとマクロ機能を終了します。マクロを終了してもセッションは維持され、通常のコンソール操作が継続して行えます。

おわりに

今回ご紹介したテラタームマクロは、管理対象ホストにログインする際のユーザ名・パスワードが固定されている環境でかなり便利になってくるマクロです。もし現在ご利用の環境にマッチするのであればご利用いただければ幸いです。

TeraTermマクロ-SSH自動ログイン(正常接続の判定 if result)

$
0
0

Tera Term(テラターム)のマクロ機能を利用し、SSHプロトコル(パスワード認証) でサーバに自動ログイン+アルファのマクロ(接続状態確認バージョン)をご紹介します。

これまで紹介してきたテラタームマクロは、ただ単純にサーバ等に接続するだけで、サーバに接続出来なくても、マクロエラーになる事は一切考えられていないマクロでした。

そこでここでは「connect」コマンドを実行後に、正常に接続が完了、及びプロンプトが正常に表示される事を「if result」の制御コマンドを使用し確認するバージョンのマクロをご紹介していきます。

正常に接続できない場合や、一定時間経過してもプロンプトが表示されない場合
メッセージ(Connection Error)を表示してマクロを終了させます。
接続エラーメッセージを表示

SSH自動ログインマクロ(接続性を判定)

;=================================================
; Filename    : ssh_connect-04.ttl 
; Description : SSH Auto login 
; Author      : JUNZOU
; Created     : 2011/04/02 
; modified    : 
;================================================= 
;; 接続先ホスト/ユーザ名/パスワード設定 
HOSTADDR = '接続先IPアドレス' 
USERNAME = 'ユーザ名' 
PASSWORD = 'パスワード' 
;================================================= 
;; ①コマンド組立て 
COMMAND = HOSTADDR 
strconcat COMMAND ':22 /ssh /2 /auth=password /user=' 
strconcat COMMAND USERNAME 
strconcat COMMAND ' /passwd=' 
strconcat COMMAND PASSWORD

;; ②接続 
connect COMMAND

;; ③接続判定1(接続出来ない場合はメッセージを表示しマクロ終了) 
if result <> 2 then 
    messagebox 'It could not be connected.' 'Connection Error' 
    end 
endif

;; ④接続判定2(10秒以内にプロンプトが表示されないとTeraTem終了) 
timeout = 10 
wait '$' '#' 
if result = 0 then 
    disconnect 
    end 
endif

;; ⑤マクロ終了 
end

マクロ内容の解説

①コマンド組立て ②接続

コマンド組立て・接続のエリアの解説はここを参照

③接続判定1(接続出来ない場合はメッセージを表示しマクロ終了)

接続判定1エリアでは、「connect」のリンクと接続の状態を確認しています。

「connect」すると、システム変数「result」に以下の値が格納されます。

値 … 状態
0 … Tera Term とリンクされていない。
1 … ホストへの接続はされていないが、Tera Term へのリンクはされている。
2 … リンクおよび接続両方ともされている。 ←正常に接続

値「2」がホストに正常に接続された状態なので、「2」以外の場合は 異常と判断してマクロを終了させています。 ⇒ 「connect」コマンドの詳細

④接続判定2(10秒以内にプロンプトが表示されないとTeraTem終了)

接続判定2エリアでは、接続後(ログインは正常に終了)にプロンプトが表示されない(システムが重くて表示出来ない?)場合に、10秒待ってもプロンプトが表示されないとマクロ&TeraTermを終了させています。

これは、後々紹介するマクロで必要になってくる機能です。

⑤マクロ終了

自動ログインが完了するとマクロ機能を終了します。

おわりに

テラタームマクロを利用して、自動でログ収集を行ったりする際等の自動処理を行う上で、これらの処理がほぼ必須となってきます。マクロがひとり歩きしないように、マクロ内にきちんとエラー処理を組み込んで使い易いコードを記述したいですね!

Viewing all 14 articles
Browse latest View live