「sshの使い方」の版間の差分
(ページの作成:「<!-- vim: filetype=mediawiki --> __TOC__ == 概要 == ssh コマンドでのログインやsshコマンドでのコマンド実行の例を紹介します...」) |
|||
(同じ利用者による、間の1版が非表示) | |||
行1: | 行1: | ||
− | |||
− | |||
− | |||
__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> | ||
− | + | [[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}} | ||
+ | <!-- 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