「sshの使い方」の版間の差分

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == ssh コマンドでのログインsshコマンドでのコマンド実行の例を紹介します...」)
 
行1: 行1:
<!--
 
vim: filetype=mediawiki
 
-->
 
 
__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

関連項目