SSHの原理と応用(B):遠隔操作し、ポートフォワーディング
そして、元記事では、SSHの使用状況を紹介し続けています。
=======================================
SSHの原理と応用(B):遠隔操作し、ポートフォワーディング
著者:ルアンYifeng
(画像のクレジット: トニーNarlock)
七、遠隔操作
リモートログインのためにSSHだけではなく、あなたはまた、リモートホスト上で直接操作を行うことができます。
操作上の例は次のとおりです。
$ sshのユーザ@ホスト 'ます。mkdir -pの.ssh &&猫>>の.ssh / authorized_keysに' <の〜/ .ssh / id_rsa.pub
リモート・ホスト上で動作を示す単一引用符中間部が、入力リダイレクションの後ろ、SSHは、リモートホストに送信されたデータを表します。
これは、SSHは、ユーザとリモートホストの間で、コマンドおよびデータ伝送チャネルを確立することができ、と言うことですので、多くのものは、SSH経由ですべてを行うことができます。
のは、いくつかの例を見てみましょう。
【例1】
リモートホストの$ HOME / srcに/ディレクトリにコピーされたファイルのすべての$ HOME / srcが/ディレクトリ。
$ CD &&タールczv SRC | sshのユーザ@ホスト「タールXZ」
【例2】
ファイルのすべてのリモートホストの$ HOME / srcに/ディレクトリには、ユーザーの現在のディレクトリにコピー。
$ sshのユーザ@ホスト 'タールCZ SRC' | タールxzv
【例3】
リモートホストのランニングはHTTPDを処理するかどうかを確認してください。
$ sshのユーザ@ホスト「のpsの斧| grepの[H] ttpd」
八、ローカルポートが結合します
SSHは、データを送信することができますので、我々はこれらの暗号化されたネットワーク接続を任せることはできないので、すべての変更は、このように安全性を向上させること、SSH接続を行きます。
我々はデータポート8080を聞かせていると、SSH経由でリモートホストに送信され、コマンドが記述します。
$のssh -D 8080ユーザ@ホスト
SSHは、ローカル8080ポートを監視するために、ソケットを作成します。データがそのポートに送信されると、自動的にリモートホスト宛てSSH接続を、上記に転送します。8080は非暗号化されたポートであることが判明した場合を想像し、今で暗号化されたポートになります。
九、ローカルポートフォワーディング
時には、結合ローカルポートが十分ではありません指すように「ポートフォワーディング」ポイントを形成するように、あなたはまた、ターゲットホストのデータ転送を指定する必要があります。後で区別するために「リモートポート転送を、」私たちはそれを入れて、「ローカルポートフォワーディング」(ローカルフォワーディング)。
リモートホストはhost2、ローカルホストがHOST1であることを前提としています。様々な理由のために、それは2つのホスト間で通信することはできません。しかし、HOST3添加は、フロント二つのホストが同時に通信することができます。したがって、それは自然な発想もHOST1のhost2の上、host3ということで、あるあります。
私たちはHOST1で次のコマンドを実行します。
$ sshをする-L 2121:ホスト2:21 HOST3
それらの間のコロンで区切られた「:ターゲットホストポートターゲットホストローカルポート」、コマンドパラメータLは、すなわちを、3つの値の合計を受けました。このコマンド手段は、SSHはローカルポート2121を結合し、その後、(FTPを実行しているホスト2を想定し、デフォルトのポートは21である)ターゲットホストのホスト2のポート21に転送するすべてのデータをHOST3指定指定されています。
結果として、限り、我々は、ホスト2のポートに接続された21に相当する2121のHOST1ポートを、接続しました。
$のftp localhostを:2121
「ローカルポート転送は」HOST1とHOST3の間で秘密のデータ伝送トンネル場合、それはとも呼ばれるように形成されている「SSHトンネル」。
ここで興味深い例です。
$ sshをする-L 5900:localhostを:5900 HOST3
それは5900ポート5900ポート製本機によるHOST3を示す(ターゲットホストがHOST3相対的な用語であるため、本明細書にローカルホスト、HOST3を意味します)。
別の例は、ポートフォワーディング、SSHログインHOST2てHOST3されます。
$ sshをする-L 9001:ホスト2:22 HOST3
このとき、機械のsshのポート限りログインhost2のと同等の9001を、ログに記録します。
$ sshの-p 9001 localhostを
上記は、ログインポートを指定するには、-pパラメータを表しています。
テン、リモートポートフォワーディング
「ローカルポートフォワーディング」は結合ローカルポートは、「リモート・ポートフォワーディング」(遠隔転送)コースを転送する意味するので、リモート・ポートをバインドするために転送されます。
次に例を見ては、上記のhost1とhost2の間の通信ではありません、あなたは前方HOST3使用する必要があります。しかしながら、特殊な状況が発生し、HOST3は、ネットワーク内のマシンであり、ネットワークの外部ネットワーク内にはネットワークの外HOST1を接続することができ、その逆はないが、HOST3 HOST1 ROMなどを用いることができます。このとき、「ローカルポートフォワーディング」どのように行うために、使用することはできませんか?
HOST3もHOST1、その後、SSHのホスト1との接続を確立して、HOST3からその上にhost1のこの接続を使用することができますので、解決策は、あります。
私たちは、HOST3で次のコマンドを実行します。
$ sshをする-R 2121:host2の:21 HOST1
Rパラメータも三つの値、すなわち、受け入れ「:宛先ホスト:リモートホストポート。ターゲットホストポートを」このコマンド手段は、その後、ホスト2のポート21に転送HOST3経由ですべてのデータを、独自のhost1のモニタポート2121を作ることです。HOST3には、host1がリモートホストであるので、このような状況が呼び出される「結合リモートポート。」
結合後、我々はHOST2のHOST1に接続できます。
$のftp localhostを:2121
ここでは、「リモートポートフォワーディング」の前提条件、host1とhost3という2つのホストがSSHDとsshクライアントを持っていることに留意しなければなりません。
XI。SSHのその他のパラメータ
SSHや他のいくつかのパラメータでなく、立派な導入。
Nパラメーターは、唯一のリモートシェルを開くことなく、リモート・ホストに接続示し、Tパラメータは、接続がTTYを割り当てられていないことを示します。2つのパラメータは遠隔操作が行われていないデータのみを転送するために使用されるSSH接続の代表と一緒に置くことができます。
$のssh -NTの-D 8080ホスト
Fパラメータは、SSH接続を背景に、成功している表します。このように、あなたは、SSH接続を中断することなく、ローカルシェルに他の操作を行うことができます。
$ sshの-f -D 8080ホスト
バックグラウンド接続をオフにするには、唯一のプロセスを殺すためにkillコマンドを使用します。
XII参照
* SSH、セキュアシェル:Definitive Guideの: 2.4。暗号鍵による認証、オライリー
* SSH、セキュアシェル:Definitive Guideの: 9.2。ポートフォワーディング、オライリー
*シェバング: リモートUNIXワークのためのヒント(SSH、画面、およびVNC)
* brihatch: SSHホスト鍵の保護
* brihatch: SSHユーザーのアイデンティティ
* IBM developerWorksの: 戦闘SSHポートフォワーディング
Jianing YANG *:SSHトンネルの技術概要
*ウィキブックス: インターネット技術/ SSH
* Buddhika Chamith: SSHトンネリングを説明しました