0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

踏み台サーバ利用のssh自動ログインTeratermMacro

Last updated at Posted at 2019-07-10

AS400の担当を外れ、Linux、UNIXシステムの運用担当にアサインされて早2か月。
いろいろ不満が出てきました。で作ったのが以下マクロ。
Linuxはノウハウがネット上に転がっているからいいよね。

##はじめに

IDを入力するのは面倒くさい。
パスワード管理ソフトからパスワードをペーストすることも面倒くさい。
宛先ホストのホスト名やIPアドレス入力も面倒くさい。
踏み台サーバを利用していて、ssh接続コマンドの投入も面倒くさい。
鍵ファイルをいちいち配置するのも面倒くさい。
気の利いたTeratermマクロを、ググりながら作るのも面倒くさい。
新しい接続先ができる都度新たな自動ログインマクロを作るのも面倒くさい。
パスワードの平文保管禁止のルールがあって面倒くさい。

といった、面倒くさい諸々を、以下写経頂くだけであらかた解決します!

##前提環境

windowsから2段階でssh接続(標準ポート番号使用)、踏み台サーバ利用

##本体

まずは、本体。定義のところは記入してください。

#auto_login_sub.ttl
;#################################################################
;定義・ID/PWの読み込み
;#################################################################
;ログの吐かれるパスを記入します、Teratermにデフォルトのログ設定済だとそちらが優先されますが、ログファイルにホスト名も載るのでこちらの利用がおすすめ。
LOGPATH = '\\hogehoge\logs\'

;踏み台サーバのホスト名またはIPを記入します
FUMIDAI_HOSTNAME = ''

;自分のIDを記入します
USERNAME = ''

;パスワード保管ファイルのパスを記入します
PASSFILE = '\\hogehoge\IDPW.dat'

getpassword PASSFILE USERNAME PASSWORD

strsplit param1 '_' 3
TGT_HOSTNAME = groupmatchstr2

;#################################################################
;ログイン、接続処理
;#################################################################
:login_step
msg = FUMIDAI_HOSTNAME
strconcat msg ':22 /ssh /auth=password /user='
strconcat msg USERNAME
strconcat msg ' /passwd='
strconcat msg PASSWORD
connect msg

settitle"自動ログインマクロ" 

;#################################################################
;操作ログの自動保存処理
;#################################################################

getdate datestr 
strcopy datestr 1 4 yearstr 
strcopy datestr 6 2 monthstr 
strcopy datestr 9 2 daystr 
gettime timestr 
strcopy timestr 1 2 hourstr 
strcopy timestr 4 2 minutestr 
strcopy timestr 7 2 secondstr 

strconcat LOGPATH yearstr 
strconcat LOGPATH monthstr 
strconcat LOGPATH daystr 
strconcat LOGPATH '_'
strconcat LOGPATH hourstr 
strconcat LOGPATH minutestr 
strconcat LOGPATH secondstr 
strconcat LOGPATH '_'
strconcat LOGPATH groupmatchstr1
strconcat LOGPATH '_'
strconcat LOGPATH groupmatchstr2
strconcat LOGPATH '.txt'

logopen LOGPATH 0 0

wait ' ~]$'
logoncommand = 'ssh '
strconcat logoncommand USERNAME
strconcat logoncommand '@'
strconcat logoncommand TGT_HOSTNAME
strconcat logoncommand ' ; exit'
sendln logoncommand

wait 'password:' 'Password:' 'Are you sure you want to continue connecting (yes/no)?'
if result <= 2 then
 sendln PASSWORD
else
 sendln 'yes'
 wait 'password:' 'Password:'
 sendln PASSWORD
endif

##パスワード登録ツール

続いて、パスワード登録ツール。

#setpassword.ttl
;パスワード保管ファイルのパスを記入します
PASSFILE = '\\hogehoge\IDPW.dat'

inputbox 'ユーザ名' 'データ入力画面'
USERNAME = inputstr

:try_password
passwordbox 'パスワード' 'データ入力画面'
PASSWORD = inputstr
passwordbox 'パスワード(確認用)' 'データ入力画面'
strcompare PASSWORD inputstr
if result = 0 then
 goto save
else
 messagebox "新パスワードが一致しません。再入力してください。" "エラー"
 goto try_password
endif

:save
setpassword PASSFILE USERNAME PASSWORD
messagebox "IDとPWが正常に保管されました。" "成功!"

##接続対象ホスト毎に作るマクロ

実際に叩く(ダブルクリックする)マクロがこちら。
ファイル名にホスト名、IPアドレスを入れてください。
これを、管理対象のサーバの数だけ生成しておきます。

hostname_hostipaddr_.ttl
include '#auto_login_sub.ttl'

細かいエラーハンドリングはさすがに面倒見きれません。ご容赦を。

初回、#setpassword.ttlを叩いてパスワード登録してから使ってくらはい。

ほなね。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?