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

提供: セキュリティ
移動: 案内検索
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == ssh コマンドでのログインsshコマンドでのコマンド実行の例を紹介します...」)
 
 
(同じ利用者による、間の1版が非表示)
行1: 行1:
<!--
 
vim: filetype=mediawiki
 
-->
 
 
__TOC__
 
__TOC__
  
 
== 概要 ==
 
== 概要 ==
 
 
[[ssh]] コマンドでの[[ログイン]]や[[ssh]]コマンドでのコマンド実行の例を紹介します。
 
[[ssh]] コマンドでの[[ログイン]]や[[ssh]]コマンドでのコマンド実行の例を紹介します。
  
 
== sshコマンドの使い方 ==
 
== sshコマンドの使い方 ==
 
 
ここでは、リモートホスト名を foo と仮定します。
 
ここでは、リモートホスト名を foo と仮定します。
  
行36: 行31:
 
% tar zcfp - /path/to | ssh foo tar zxfp - -C /home/tmp/
 
% tar zcfp - /path/to | ssh foo tar zxfp - -C /home/tmp/
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
[[sudo]]を組み合わせる方法は、「[[sshとtarとsudoを組み合わせてバックアップする方法]]」をご参照ください。
 +
== 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>
  
* [[ssh]]
+
[[iptables]]などの[[ファイアーウォール]]などで、[[ssh]] の接続数が制限されている場合に有効でしょう。
* [[scpの使い方]]
+
 
 +
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}}
 +
<!-- vim: filetype=mediawiki -->

2014年3月1日 (土) 11:55時点における最新版

概要

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/

sudoを組み合わせる方法は、「sshとtarとsudoを組み合わせてバックアップする方法」をご参照ください。

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

関連項目