投稿者「Shunsuke Yoshikawa」のアーカイブ

9.1. SSHとTelnetのデュアル化に対応する

9.1.1. いまどきtelnetかよ・・・に対応したい 私も作っていて思いました。 いまどきtelnetかよ・・・。 そこで、今回はSSHへのconnectについて対応します。 でも、普通にtelnetをSSHに変えただけでは面白くないので、SSHもtelnetも両方いけるマクロにしてしまいましょう。  

9.1.1.1. SSHについて

これまでconnectの方式はtelnetを使用していました。 telnetは通信内容が平文で送られることから、セキュリティを重視する運用ポリシを持つシステムでは、telnetを使用することを禁止していたりします。 よって、telnetの代わりに暗号化に対応しているSSHを使うことが非常に多いと言えます。 SSHもバージョン1はセキュアではないので、SSHを使う場合はバージョン2のみ、としているシステムも多く存在します。 しかし、SSHだったらなんでもいいよね的な雰囲気もまだまだ色濃く残っており、バージョン2だけでの接続で固定してしまうと、汎用性が低くなるかもしれません。 ですので、クライアント側はsshのバージョンを指定しない感じで書いていきたいと思います。 Tera TermのSSH認証は公開鍵認証とパスワード認証に対応していますが、今回はパスワード認証で書いてみたいと思います。  

9.1.1.2. 元になるマクロ

  かなり行数が増えてしまって、コメントが若干うざい感じになっていますが、振り返りやすいことがこのブログの売りだと思っているので、このまま進めていきたいと思います。  

9.1.2. SSH対応を追加する

telnetのconnectも使えるようにしておきたいので、今回はtelnetのconnectを残しながら、SSHのコマンドも追加していきたいと思います。  

9.1.2.1. 入れ込むSSHコマンド

今回のマクロでは、使用するプロトコルをあらかじめ、マクロ内で指定しておくことによって、telnetとSSHを使い分けるような形にしたいと思います。 PORT変数を書いて、そこに22が書かれていたらSSH、それ以外の数字が書かれていたら、そのポート番号に対してtelnetとしたいと思います。 追加したいコマンドはこんな感じです。

  PORTが22ならSSH、それ以外ならtelnetなので、PORT変数をうまく使ってif分岐させます。

  SSHの場合はログインまで進みますので、

の部分が不要になります。 ですのでtelnetの時に必要なので、else以下に入れ込んでおくことにします。 さらに今回新たに

という新しいコマンドをさらっと登場させています。 これは整数型と呼ばれるデータの型式を文字列に変換させるコマンドです。 当BLOGではあまりデータの型については触れていませんが(というかまったく・・・)、数値型と文字列型はstrconcatで合体できないのです。 詳しく解説し始めると私の力量がばれてしまいますので、今回はここら辺にしておいていただきますが、マクロを使っていて型式が違う場合、 Type mismatch ERROR みたいなエラーメッセージが出るので、そんな時は型式を変更するといいです。 ちなみに、この記事を書いているときのマクロ検証でもばんばん出ました。  

9.1.2.2. マクロ化する

さて早速マクロ化していきます。

  これで、SSHとtelnetの両方にアクセスできるマクロが出来上がりました。 かなり使い勝手が上がった気がしますね。]]>