「ssh」の版間の差分
行76: | 行76: | ||
% scp foo:/etc/rc.conf ~/ | % scp foo:/etc/rc.conf ~/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | == ポートフォワーディング == | ||
+ | |||
+ | ポートフォワーディングには、以下の種類があります。 | ||
+ | * ローカル | ||
+ | * リモート | ||
+ | * ダイナミック | ||
+ | |||
+ | === ローカルポートフォワーディングの例 === | ||
+ | |||
+ | ローカルポートフォワーディングは、 -L オプションを利用します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | -L [bind_address:]local_port:remote_hostname:remote_port | ||
+ | </syntaxhighlight> | ||
+ | クライアントからサーバに対して、[[ssh]]トンネルを作成します。 | ||
+ | |||
+ | localhost:8080 と foo:80 をつなぐ。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | % scp -L 8080:foo:80 foo | ||
+ | </syntaxhighlight> | ||
+ | 8080には、ローカルホストからしか接続ができません。 | ||
+ | ローカルホストにログインできるユーザやプロセスが8080に接続できます。 | ||
+ | |||
+ | ローカルホストが hoge だとして hoge:8080 と foo:80 をつなぐ。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | % scp -L hoge:8080:foo:80 foo | ||
+ | </syntaxhighlight> | ||
+ | hoge のアドレスにアクセスできるプロセス、ユーザからhoge:8080を利用できます。 | ||
+ | |||
+ | === リモートポートフォワーディング === | ||
+ | |||
+ | サーバからクライアントにポートフォワーディングします。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | -R [bind_address:]port:hostname:port | ||
+ | </syntaxhighlight> | ||
+ | リモートの [[syslog]] をローカルに飛ばしてくる、といったことができます。 | ||
+ | |||
+ | === ダイナミックアプリケーションレベルポートフォワーディング === | ||
+ | |||
+ | [[ssh]] は、SOCKS4, SCOKS5 プロトコルをサポートしています。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | -D [bind_address:]port | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | |||
+ | === ゲートウェイポート === | ||
+ | |||
+ | ポートフォワーディングは、デフォルトでは、別のホストから接続できません。 | ||
+ | [[ssh]] に -g オプションをつけることで、0.0.0.0 でバインドするため、リモートからでも接続可能になります。 | ||
+ | |||
+ | リモートポートフォワーディングは、サーバ側で許可が必要です。[[sshd_config]] で GatewayPorts yes と設定します。 | ||
+ | |||
+ | == 鍵ペア == | ||
+ | |||
+ | [[ssh]] の [[鍵ペア]] の説明。 | ||
+ | |||
+ | * [[秘密鍵]]は、[[パスフレーズ]]で[[暗号化]] されます。 | ||
+ | * [[RFC4716]] (SSH2 public or private key), [[PKCS8]](PEM PKCS8 public key) , [[PEM]] (PEM public key) の3つのフォーマットがあります。 | ||
+ | |||
+ | == authorized_keys == | ||
+ | |||
+ | [[authorized_keys]] に [[公開鍵]] を設定します。 | ||
+ | [[公開鍵]]ごとにアクセス元や実行できるコマンドを限定できます。 | ||
+ | |||
+ | == エージェントフォワード == | ||
+ | |||
+ | * [[ssh]] の -A オプションは、認証エージェント接続の転送を有効にします。リモートホストのファイルパーミッションのバイバスして、転送接続を通して、ローカルエージェントにアクセスできます。 | ||
+ | * パーミッションを無視できるユーザは、エージェントがもっている鍵で認証を行わせることができます。 | ||
+ | |||
+ | == トンネル == | ||
+ | |||
+ | ssh の -w で tun/tap を使ってトンネルできます。 | ||
== 関連項目 == | == 関連項目 == | ||
行83: | 行156: | ||
* [[Unix]] | * [[Unix]] | ||
* [[パスフレーズのないsshの秘密鍵の作成]] | * [[パスフレーズのないsshの秘密鍵の作成]] | ||
+ | * [[authorized_keys]] | ||
+ | * [[rdesktop]] | ||
+ | * [[ssh-agent]] | ||
+ | * [[ssh-keygen]] | ||
+ | * [[sshd_config]] |
2013年4月17日 (水) 00:18時点における版
このページでのssh は、sshクライアントとしての ssh コマンドのことです。
読み方 えすえすえいち
目次
概要
プロトコルとしてのssh については、 Secure_Shell をご参照下さい。
サーバの信頼性の確認
sshは、クライアントがサーバに接続します。サーバに接続したときに、接続先のサーバの信頼性の検証をします。検証には、鍵指紋システム(key fingerprint system)を利用します。
はじめて接続したサーバでは、ユーザに接続をしてよういか、確認を求めます。一度、接続したサーバの フィンガープリント は、 ~/.ssh/known_hosts に保存されます。
known_hosts と known_hosts2 がある場合は、OpenSSH 3以上であれば、1つに統合できます。
sshの設定
sshコマンドの使い方
ここでは、リモートホスト名を foo と仮定します。
foo で ls コマンドを実行します。
% ssh foo ls
foo にログインします。
% ssh foo
foo にユーザ bar でログインします。
% ssh bar@foo
foo にユーザ bar でログインします。
% ssh -l bar foo
/path/to を foo の /home/tmp/ にコピーします。
% tar zcfp - /path/to | ssh foo tar zxfp - -C /home/tmp/
scpコマンドの使い方
foo のホームディレクトリに、ローカルの /etc/rc.conf を転送します。
% scp /etc/rc.conf foo:
/path/to を再帰的に foo にコピーします。
% scp -r /path/to foo:
/path/to を再帰的に foo の /home/tmp/ にコピーします。 /home/tmp/に to のディレクトリが作成されます。
% scp -r /path/to foo:/home/tmp/
foo の /etc/rc.conf をローカルのホームディレクトリにコピーします。
% scp foo:/etc/rc.conf ~/
ポートフォワーディング
ポートフォワーディングには、以下の種類があります。
- ローカル
- リモート
- ダイナミック
ローカルポートフォワーディングの例
ローカルポートフォワーディングは、 -L オプションを利用します。
-L [bind_address:]local_port:remote_hostname:remote_port
クライアントからサーバに対して、sshトンネルを作成します。
localhost:8080 と foo:80 をつなぐ。
% scp -L 8080:foo:80 foo
8080には、ローカルホストからしか接続ができません。 ローカルホストにログインできるユーザやプロセスが8080に接続できます。
ローカルホストが hoge だとして hoge:8080 と foo:80 をつなぐ。
% scp -L hoge:8080:foo:80 foo
hoge のアドレスにアクセスできるプロセス、ユーザからhoge:8080を利用できます。
リモートポートフォワーディング
サーバからクライアントにポートフォワーディングします。
-R [bind_address:]port:hostname:port
リモートの syslog をローカルに飛ばしてくる、といったことができます。
ダイナミックアプリケーションレベルポートフォワーディング
ssh は、SOCKS4, SCOKS5 プロトコルをサポートしています。
-D [bind_address:]port
ゲートウェイポート
ポートフォワーディングは、デフォルトでは、別のホストから接続できません。 ssh に -g オプションをつけることで、0.0.0.0 でバインドするため、リモートからでも接続可能になります。
リモートポートフォワーディングは、サーバ側で許可が必要です。sshd_config で GatewayPorts yes と設定します。
鍵ペア
ssh の 鍵ペア の説明。
- 秘密鍵は、パスフレーズで暗号化 されます。
- RFC4716 (SSH2 public or private key), PKCS8(PEM PKCS8 public key) , PEM (PEM public key) の3つのフォーマットがあります。
authorized_keys
authorized_keys に 公開鍵 を設定します。 公開鍵ごとにアクセス元や実行できるコマンドを限定できます。
エージェントフォワード
- ssh の -A オプションは、認証エージェント接続の転送を有効にします。リモートホストのファイルパーミッションのバイバスして、転送接続を通して、ローカルエージェントにアクセスできます。
- パーミッションを無視できるユーザは、エージェントがもっている鍵で認証を行わせることができます。
トンネル
ssh の -w で tun/tap を使ってトンネルできます。