単にtelnetと言うと、一般にtelnetコマンドを指すのが普通です。
telnetコマンドは、ネットワークにつながれたコンピュータを
遠隔操作(Remote Control)するためのコマンドです。
Windows2000、WindowsXPなどではコマンドプロンプトで、
例えば次のように入力して、起動します。
C:\>telnet 192.168.0.33
このソフトはtelnetサーバーに対するクライアントソフトで、
すでにtelnetサーバーが動いているマシンが、遠隔操作の対象です。
そしてこの例で示している"192.168.0.33" が
telnetサーバーの動いているホストのIPアドレスと言うわけです。
一般には、このコマンドの後で、次のようにログイン操作をして、
後は、サーバー側で使えるコマンドを入力して
操作する形態です。
login:guest Password:このパスワードの入力は見えません Welcome !! [guest]$
この中で使えるコマンドは、
サーバー側のOSによりますが、
一般にサーバー側のコマンドが使えます。
例えば、接続先がLinuxならLinuxコマンド、WindowsならWindows用のコマンドが使えます。
最後は、logoutコマンドを入力して、終了します。
簡単な実験ができるようにWindowsの実験用 telnetサーバーソフトをここに用意しました。
ここ ←この右クリックで、ファイル名を『JTelnetServer.jar』で保存して実験できます。
Zドライブのnetworkディレクトリの中にworkディレクトリを作り、そこにコピーして実験している例を示します。
以下がサーバー(JTelnetServer.jar)の起動画面例です。(このサーバーを起動したマシンが、telnetコマンドの遠隔操作対象となります。)
次に、telnetコマンド(クライアント)で、ログインし、操作するわけです。
以下では、new の名前のディレクトリを作り、その中にt.txtのファイルを作り、それに文字列を書き込んでいる操作例です。
このようにtelnetコマンドは、サーバーマシンを遠隔操作(Remote Control)するコマンドですが、
実質的には、キー入力した文字列をサーバーへ送信し、受信した文字列を表示しているだけです。
サーバー側で受信した文字列のコマンドを実行し、その実行結果の文字列をクライアントへ送り返しているのです。
telnetコマンド自体はtelnetサーバー以外のサーバーでも接続できるので、
このtelnetコマンドの送受信の機能を利用して、他のサーバーに対してキー入力した文字列を
送信し、その応答の受信文字列を確認できます。以降でその確認実験用にtelnetを使います。
以下にWindowsXPの実行例を示します。
C:\>telnet上記の実行で、telenetのコマンド実行状態の画面がに切り替わります。 以下で、『set codeset Shift JIS 』の入力で漢字コードセットをShift JISに変更し、 それから『open 192.168.0.33 23』で接続することが可能です。 (接続前に、『?』の入力で、各種コマンドが確認できます、それを試してから行っています。)
Microsoft Telnet クライアントへようこそ エスケープ文字は 'CTRL+]' です Microsoft Telnet> ? コマンドは省略することができます。サポートされているコマンド: c - close 現在の接続を終了します d - display パラメータを表示します o - open ホスト名 [ポート番号] ホスト名に接続します (既定のポート番号は 23) q - quit telnet を終了します set - set オプションを設定します ('set ?' で一覧表示) sen - send サーバーに文字を送信します st - status 状態を表示します u - unset オプションを解除します ('unset ?' で一覧表示) ?/h - help ヘルプを表示します Microsoft Telnet> set ? bsasdel BackSpace を Del として送信します crlf ニューライン モード - リターン キーで CR および LF を送信します delasbs Del を BackSpace として送信します escape x telnet クライアント プロンプトで x をエスケープ文字として 入力します localecho ローカル エコーを使用します logfile x x は現在のクライアント ログ ファイルです logging ログを有効にします mode x x には console または stream が入ります ntlm NTLM 認証を使用します term x (x には ansi, vt100, vt52, または vtnt が入ります) codeset x (x には Shift JIS, Japanese EUC, JIS Kanji, JIS Kanji(78), DEC Kanji または NEC Kanji が入ります) Microsoft Telnet> set localecho ローカル エコー: オン Microsoft Telnet> set codeset Shift JIS エミュレーションの種類: VT100/漢字コードセット: Shift JIS Microsoft Telnet> open 192.168.0.33 23
上記操作以降で、遠隔操作対象(192.168.0.33 のマシン)の操作画面になります。
なおここで入力した23はwell-knownのート番号で、省略できますが、
このようにtelnetサーバーのポート番号を指定して接続することも可能です。
上記 Telnetのようにリモートホストのコマンドシェルを利用する。( well-knownのート番号は 22 です。)
Telnetは、サーバーとクライアント間のパスワードも含め、平文(暗号化しない)で送受信します。
そのため、パスワードなどがネットワーク経路上で盗聴されるリスクが高いと言えます。
そこで安全に、既存のプロトコルを代用する手段として作られたのが SSH です。(rfc4252.txt)
SSHの暗号通信は、ハイブリッド暗号が可能です。(公開鍵暗号方式で共通鍵の鍵交換を行い、通信自体は高速な共通鍵暗号を用いる)
SSHを利用することで、入力コマンド、処理結果の出力などを、すべて暗号化して送受信できます。
なおSSHプロトコルを使って、SCP(Secure Copy)や、SFTP(SSH File Transfer Protocol)のように、安全なファイル転送の技術が開発されています。
SSHのバージョン1には脆弱性が見つかっており、バージョン2のプロトコルを使う方が望ましいとされています。
また 一般には、オープンソースのOpenSSHが普及しているようです。(2012年)
(個人的にWindowsで使っているのは、日本語が使えるこれを利用しています。)