「sshの使い方」の版間の差分
提供: セキュリティ
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == ssh コマンドでのログインやsshコマンドでのコマンド実行の例を紹介します...」) |
|||
行1: | 行1: | ||
− | |||
− | |||
− | |||
__TOC__ | __TOC__ | ||
行36: | 行33: | ||
% tar zcfp - /path/to | ssh foo tar zxfp - -C /home/tmp/ | % tar zcfp - /path/to | ssh foo tar zxfp - -C /home/tmp/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | == netcat モード == | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | ssh -o ProxyCommand='ssh user@destination_host -W %h:%p' gateway_host | ||
+ | </syntaxhighlight> | ||
+ | * 参考: [[ssh ProxyCommandを利用した多段ssh]] | ||
+ | == ControlMaster == | ||
+ | ControlMaster は、[[ssh]] のセッションが存在するときに、そのセッションを再利用する仕組みです。セッションを再利用するため、普通に接続するよりも接続に必要な時間が短くなります。[[ssh]] で接続するたびに[[sshd]]が起動されますが、ControlMaster を使用すると [[sshd]] を使いまわされます。 | ||
+ | 事前準備として、ディレクトリを作成します。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | mkdir ~/.ssh/cm_socket | ||
+ | </syntaxhighlight> | ||
− | = | + | ControlMaster を使用する場合は、[[ssh_config]] に設定します。 |
+ | <syntaxhighlight lang="bash"> | ||
+ | Host * | ||
+ | ControlMaster auto | ||
+ | ControlPath ~/.ssh/cm_socket/%r@%h:%p | ||
+ | </syntaxhighlight> | ||
+ | [[iptables]]などの[[ファイアーウォール]]などで、[[ssh]] の接続数が制限されている場合に有効でしょう。 | ||
+ | |||
+ | ControlMaster を使用しない場合は、リモートサーバーでは [[sshd]] が下記のように生成されます。 | ||
+ | <pre> | ||
+ | sshd -+- sshd - sshd - shell | ||
+ | | | ||
+ | +- sshd - sshd - shell | ||
+ | </pre> | ||
+ | |||
+ | ControlMaster を使用する場合は、リモートサーバーでは [[sshd]] が下記のように生成されます。 | ||
+ | <pre> | ||
+ | sshd -+- sshd - sshd -+- shell | ||
+ | | | ||
+ | +- shell | ||
+ | </pre> | ||
+ | |||
+ | == ControlPersist == | ||
+ | ControlPersist は、[[OpenSSH]] 5.6 で追加されました。 | ||
+ | ControlMaster は、[[ssh]] のセッションが存在するときに、そのセッションを再利用する仕組みです。 | ||
+ | ControlPersist を使用する場合は、[[ssh_config]] に設定します。 | ||
+ | ControlMaster をバックグランドにまわしてくれる機能です。 | ||
+ | <syntaxhighlight lang="bash"> | ||
+ | Host foo | ||
+ | ControlPersist no | ||
+ | Host *.bar.com | ||
+ | ControlMaster auto | ||
+ | ControlPath ~/.ssh/cm_socket/%r@%h:%p | ||
+ | ControlPersist 10 | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | == 関連項目 == | ||
* [[ssh]] | * [[ssh]] | ||
+ | * [[scp]] | ||
* [[scpの使い方]] | * [[scpの使い方]] | ||
+ | <!-- | ||
+ | vim: filetype=mediawiki | ||
+ | --> |
2013年10月6日 (日) 20:12時点における版
概要
ssh コマンドでのログインや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/
netcat モード
ssh -o ProxyCommand='ssh user@destination_host -W %h:%p' gateway_host
ControlMaster
ControlMaster は、ssh のセッションが存在するときに、そのセッションを再利用する仕組みです。セッションを再利用するため、普通に接続するよりも接続に必要な時間が短くなります。ssh で接続するたびにsshdが起動されますが、ControlMaster を使用すると sshd を使いまわされます。
事前準備として、ディレクトリを作成します。
mkdir ~/.ssh/cm_socket
ControlMaster を使用する場合は、ssh_config に設定します。
Host * ControlMaster auto ControlPath ~/.ssh/cm_socket/%r@%h:%p
iptablesなどのファイアーウォールなどで、ssh の接続数が制限されている場合に有効でしょう。
ControlMaster を使用しない場合は、リモートサーバーでは sshd が下記のように生成されます。
sshd -+- sshd - sshd - shell | +- sshd - sshd - shell
ControlMaster を使用する場合は、リモートサーバーでは sshd が下記のように生成されます。
sshd -+- sshd - sshd -+- shell | +- shell
ControlPersist
ControlPersist は、OpenSSH 5.6 で追加されました。 ControlMaster は、ssh のセッションが存在するときに、そのセッションを再利用する仕組みです。 ControlPersist を使用する場合は、ssh_config に設定します。 ControlMaster をバックグランドにまわしてくれる機能です。
Host foo ControlPersist no Host *.bar.com ControlMaster auto ControlPath ~/.ssh/cm_socket/%r@%h:%p ControlPersist 10