ssh

ssh[オプション] [ユーザー名@]ホスト名 [コマンド]
ssh [-1246AaCfgKkMNnqsTtVvXxYy]
    [-b bind_address]
    [-c cipher_spec]
    [-D  [bind_addres_s:]port]
    [-e escape_char]
    [-F configfile]
    [-i identity_file]
    [-L  [bindaddress:]port:host:hostport]
    [-l login_name]
    [-m mac_spec]
    [-O ctl_cmd]
    [-o option]
    [-p port]
    [-R  [bind_address:]port:host:hostport]
    [-S ctl_path]
    [-w local_tun[:remote_tun]]
    [user@]hostname [command]

ssh(SSHクライアント)はリモートマシンにログインし、そのマシン上でコマンドを実行するためのプログラムです。 これはrloginとrshを置き換え、安全が確保されていないネットワーク越しの2つのホスト間に、 安全な暗号化通信を提供することを目的としています。 X11の接続と任意のTCPポートも、安全なチャンネル越しに転送することが可能です。 sshは指定されたホスト名(任意でユーザー名と一緒に)に接続しログインを行います。 ユーザーは、プロトコルバージョンに依存した幾つかの方法の1つを使用して、 リモートマシンに対して自身の証明をしなければなりません。(詳細は後述) もしコマンドが指定されると、ログインシェルの代わりにそのコマンドがリモートホスト上で実行されます。

オプション 説明
-1 バージョン1のみのプロトコルを試すことをsshに強制します。
-2 バージョン2のみのプロトコルを試すことをsshに強制します。
-4 IPv4アドレスのみを使用する事をsshに強制します。
-6 IPv6アドレスのみを使用する事をsshに強制します。
-A

認証エージェントの接続の転送を有効にします。 これは設定ファイル内の各ホストを基に指定することも可能です。

エージェントの転送の有効には、警告が伴うべきです。 リモートホスト上のファイル権限を迂回することが出来るユーザーは(エージェントのUNIXドメインソケットのために)、 ローカルエージェントに転送された接続を介してアクセスすることが可能です。 攻撃者はキーの材料をエージェントから取得することは出来ませんが、 エージェントから読み込んだIDを使用して認証を有効にしたキー上で操作を実行することは可能です。

-a 認証エージェント接続の転送を無効にします。
-b bind_address ローカルマシン上のbind_addressを、接続元のアドレスとして使用します。 システムが1つ以上のアドレスを持つ場合にだけ、有用です。
-C 全てのデータの圧縮を要求します。 (標準入力(stdin)、標準出力(stdout)、標準エラー出力(stderr)と転送されるX11とTCP接続のデータを含みます。) 圧縮アルゴリズムはgzip(1)によって使用されるものと同じで、 バージョン1のプロトコルのために、CompressionLevelオプションで"level"を制御する事が可能です。 圧縮する事はモデム接続やその他の遅い接続環境では効果的ですが、 速いネットワーク環境ではかえって遅くなります。 デフォルト値はホスト毎に設定ファイル上で指定可能です。 Compressionオプションを参照してください。
-c cipher_spec

セッション暗号化のための暗号仕様を選択します。 プロトコルバージョン1は、1つの暗号指定を許可します。 サポートされる値は、"3des"、"blowfish"、"des"です。

3des(デフォルト)
3des(トリプルdes)は、3つの異なるキーにより3重となる暗号化-復号化-暗号化を行います。 これはセキュアであると考えられています。
blowfish
blowfishは高速なブロック暗号です。 これはとてもセキュアで、3desよりはるかに高速です。
des
desは、インターオペラビリティ(相互互換性)のために、 3des暗号がサポートされないレガシーなプロトコルバージョン1のsshクライアント内でのみサポートされます。 暗号が脆弱である事から、これを使用する事は強く非推奨とされています。

プロトコルバージョン2では、cipher_specは暗号仕様が優先順に並べられたカンマ区切りのリストです。 より詳しい情報については、Ciphersキーワードを参照してください。

-D [bind_address:]port

ローカルの"動的"なアプリケーション層の転送ポートを指定します。 これはローカル側でポートをリッスンするソケットを割り当てることで動作します。 任意で指定されたbind_addressをバインドします。 このポートへ接続する度に接続はセキュアなチャンネル越しに転送され、 その後アプリケーションプロトコルはリモートマシンからの接続が何処にするのかを決定するのに使用されます。 現在(執筆時はCentOS6.2時点)ではSOCK4とSOCKS5プロトコルがサポートされ、sshはSOCKSサーバーとして振る舞います。 rootのみが特権ポートを転送することが可能です。 動的ポートの転送は、設定ファイル内でも指定することが可能です。

IPv6アドレスは代替の文法[bind_address/]port、 または角括弧[]で囲むことで指定する事が可能です。 スーパーユーザーだけが、特権ポートを転送することが可能です。 デフォルトでは、GatewayPorts設定に一致するローカルのポートがバインドされます。 ただし、明示的に指定したbind_addressは、特定のアドレスへの接続のバインドに使用されるかもしれません。 空のアドレスまたは'*'は全てのインターフェースから利用可能となるべきポートを指し示す一方、 "localhost"と指定されたbind_addressは、ローカル使用のためだけにバインドされるリスニングポートを示します。

-e escape_char (デフォルト: '~') ptyを使用してセッションのためのエスケープ文字を設定します。 エスケープ文字は行の先頭でのみ認識されます。 エスケープ文字に続くドットは接続を閉じ、エスケープ文字に続くcntrol-Zは接続をサスペンドし、 エスケープ文字自身に続くエスケープ文字は、そのエスケープ文字自体を送信します。(翻訳に自信なし) エスケープ文字に"none"を設定すると、エスケープを無効とし、セッションが完全に素通しの状態となります。(翻訳に自信なし)
-F configfile ユーザー別の代替の設定ファイルを指定します。 コマンドライン上で設定ファイルが指定された場合、 システム全体の設定ファイル(/etc/ssh/ssh_config)は無視されます。 デフォルトのユーザー別の設定ファイルは、~/.ssh/configです。
-f

sshコマンド実行直前に、バックグランドに移行します。 これは、sshがパスワードまたはパスフレーズの問い合わせを行うが、ユーザーはそれをバックグラウンドで行って欲しいという場合に便利です。 これは、-nを意味します。 リモートサイトのX11プログラムを開始する際に推奨される方法として、ssh -f host xtermのような方法があります。

もしExitOnForwardFailure設定オプションが"yes"に設定されている場合、 -fで開始されたクライアントは、バックグラウンドに置き換わる前に 全てのリモートポートの転送が正常に確立されるまで待つことになります。(翻訳に自信なし)

-g リモートホストがローカル転送されたポートに接続することを許可します。
-I smartcard_device ユーザーのプライベートRSAキーが格納されるスマートカード(smartcard)を使用した情報伝達に使用すべきsshのデバイスを指定します。 このオプションは、スマートカードデバイスのコンパイルがサポートされている場合のみ有効です。(デフォルトはサポートされていません。)
-i identity_file RSAまたはDSA認証のためのID(プライベートキー)を読み込むためのファイルを選択します。 デフォルトは、プロトコルバージョン1では~/.ssh/identityで、 プロトコルバージョン2では~/.ssh/id_rsa~/.ssh/id_dsaになります。 このIDファイルは、設定ファイル内でホスト別に指定することも可能です。 複数の-iオプション(また、設定ファイル内で複数のID)を指定することも可能です
-K GSSAPIベースの認証とGSSAPI信用証明(クレデンシャル)のサーバへの転送(委任)を有効にします。
-k サーバへのGSSAPI信用証明(クレデンシャル)の転送(委任)を無効にします。
-L [bind_address:]port:host:hostport

指定されたリモート側のホストとポートに転送する、ローカル(クライアント)ホスト上のポートを指定します。 これは、指定されたbind_addressをバインドし、 ローカル側のポートをリッスンするソケットが配置されることで動作します。 このポートに接続がされる度に、接続はセキュアなチャンネル越しに転送され、 リモートマシンのホストのポートであるhostportに接続されます。

またポートフォワーディングは、設定ファイル内で指定することも可能です。 IPv6アドレスは代替の文法[bind_address/]port/host/hostport、 または角括弧[]でアドレスを囲むことで指定することが可能です。 スーパーユーザーだけが特権ポートに転送する事が出来ます。 デフォルトでは、ローカルポートはGatewayPorts設定に一致するものにバインドされます。 ただし、明示的に指定されたbind_addressは特定のアドレスの接続へのバインドに使用されるかもしれません。 bind_addressが空または'*'が全てのインターフェースで利用可能とすべき事を指し示す一方、 "localhost"と指定されると、ローカルだけで使用するためにバインドされたポートだけをリッスンします。

-l login_name リモートマシンにログインするユーザーを指定します。 これは設定ファイル内でホストごとに指定する事も可能です。
-M sshクライアントを接続共有のために"master"モードにします。 複数の-Mオプションは、スレーブ接続が受け付ける前に必要となる確認を行い、sshを"master"にします。(翻訳に自信なし) 詳細については、ssh_config(5)内のControlMasterの説明を参照してください。
-m mac_spec プロトコルバージョン2では、MAC(メッセージ認証コード)アルゴリズムのカンマ区切りのリストで優先順位を指定することが可能です。 詳細については、MACのキーワードを参照してください。
-N リモートコマンドの実行を行いません。 これはポートを転送するだけの場合に便利です。(プロトコルバージョン2のみ)
-n stdin(標準入力)を/dev/nullからのものとします。(実際にはstdinの読み込みを防ぎます。) これはバックグラウンドでのsshの実行時に使用される必要があります。 リモートマシン上のX11プログラムの実行に、これを使用して同じような事をします。 例えば、ssh -n shadows.cs.hut.fi emacs &はshadows.cs.hut.fi上でemacsを開始し、 X11接続は自動的に暗号化されたチャンネル越しに転送されます。 sshプログラムはバックグランドで実行されるようになります。 (もしsshがパスワードまたはパスフレーズの問い合わせを必要とする場合は動作しません。-fオプションも参照してみてください。)
-O ctl_cmd 多岐にわたるマスタープロセスのアクティブな接続を制御します。 -Oオプションが指定されると、ctl_cmd引数が割り込みで、マスタープロセスに渡されます。 正当なコマンドは、"check"(マスタープロセスの実行を確認)と"exit"(マスタープロセスの終了を要求)になります。
-o option 設定ファイルで使用されるものと同じフォーマットで、オプションを指定することが出来ます。 これは個別のコマンドラインのフラグが無いオプションを指定するのに便利です。 下記は全てのオプションの一覧です。指定可能な値については、ssh_config(5)を参照してください。
  • AddressFamily
  • BatchMode
  • BindAddress
  • ChallengeResponseAuthentication
  • CheckHostIP
  • Cipher
  • Ciphers
  • ClearAllForwardings
  • Compression
  • CompressionLevel
  • ConnectionAttempts
  • ConnectTimeout
  • ControlMaster
  • ControlPath
  • DynamicForward
  • EscapeChar
  • ExitOnForwardFailure
  • ForwardAgent
  • ForwardX11
  • ForwardX11Trusted
  • GatewayPorts
  • GlobalKnownHostsFile
  • GSSAPIAuthentication
  • GSSAPIDelegateCredentials
  • HashKnownHosts
  • Host
  • HostbasedAuthentication
  • HostKeyAlgorithms
  • HostKeyAlias
  • HostName
  • IdentityFile
  • IdentitiesOnly
  • KbdInteractiveDevices
  • LocalCommand
  • LocalForward
  • LogLevel
  • MACs
  • NoHostAuthenticationForLocalhost
  • NumberOfPasswordPrompts
  • PasswordAuthentication
  • PermitLocalCommand
  • Port
  • PreferredAuthentications
  • Protocol
  • ProxyCommand
  • PubkeyAuthentication
  • RekeyLimit
  • RemoteForward
  • RhostsRSAAuthentication
  • RSAAuthentication
  • SendEnv
  • ServerAliveInterval
  • ServerAliveCountMax
  • SmartcardDevice
  • StrictHostKeyChecking
  • TCPKeepAlive
  • Tunnel
  • TunnelDevice
  • UsePrivilegedPort
  • User
  • UserKnownHostsFile
  • VerifyHostKeyDNS
  • VisualHostKey
  • XAuthLocation
-p port リモートホスト上の接続するポートです。 これは設定ファイル上でホスト毎に指定する事が可能です。
-q Quiet(沈黙)モードです。 ほとんどの警告と診断メッセージが沈黙化されます。
-R [bind_address:]port:host:hostport

指定されたリモート(サーバー)ホスト上の指定されたポートを、ローカルホスト側で指定されたポートに転送します。 これはリモート側のポートをリッスンするソケットを配置することで動作し、 このポートへ接続される度にセキュアなチャンネル越しに接続が転送され、 ローカルマシン側のホストのポートであるhostportに接続されます。

ポートフォワーディングは設定ファイル内でも指定する事が可能です。 特権ポートはリモートマシンにrootとしてログインした場合のみ、転送が可能になります。 IPv6アドレスは角括弧[]でアドレスを囲むか、 または代替の文法[bind_address/]host/port/hostportを使用することで指定する事が可能です。

デフォルトでは、サーバ上のリッスンするソケットは、ループバックするインターフェースのみにバインドされます。 これはbind_addressを指定することで上書きすることが可能です。 bind_addressへの空、または'*'の指定は、 全てのインターフェース上でリモートのソケットをリッスンする事を示します。 サーバーのGatewayPortsオプションが有効(sshd_config(5)参照)である場合のみ、 リモートのbind_addressの指定が成功します。

もしportの引数が'0'の場合、 リスニング·ポートは、サーバー上で動的に割り当てられ、実行時にクライアントに報告されます。

-S ctl_path 接続共有のための制御ソケットの位置を指定します。 詳細については、ssh_config(5)内のControlPathとControlMasterの説明を参照してください。
-s May be used to request invocation of a subsystem on the remote system. Subsystems are a feature of the SSH2 protocol which facilitate the use of SSH as a secure transport for other applications (eg. sftp(1)). The subsystem is specified as the remote command.
-T Disable pseudo-tty allocation.
-t Force pseudo-tty allocation. This can be used to execute arbitrary screen-based programs on a remote machine, which can be very useful, e.g. when implementing menu services. Multiple -t options force tty allocation, even if ssh has no local tty.
-V Display the version number and exit.
-v Verbose mode. Causes ssh to print debugging messages about its progress. This is helpful in debugging connection, authentication, and configuration problems. Multiple -v options increase the verbosity. The maximum is 3.
-w local_tun[:remote_tun] Requests tunnel device forwarding with the specified tun(4) devices between the client (local_tun) and the server (remote_tun). The devices may be specified by numerical ID or the keyword “any”, which uses the next available tunnel device. If remote_tun is not specified, it defaults to “any”. See also the Tunnel and TunnelDevice directives in ssh_config(5). If the Tunnel directive is unset, it is set to the default tunnel mode, which is “point-to-point”.
-X Enables X11 forwarding. This can also be specified on a per-host basis in a configuration file. X11 forwarding should be enabled with caution. Users with the ability to bypass file permissions on the remote host (for the user’s X authorization database) can access the local X11 display through the forwarded connection. An attacker may then be able to perform activities such as keystroke monitoring. For this reason, X11 forwarding is subjected to X11 SECURITY extension restrictions by default. Please refer to the ssh -Y option and the ForwardX11Trusted directive in ssh_config(5) for more information.
-x Disables X11 forwarding.
-Y Enables trusted X11 forwarding. Trusted X11 forwardings are not subjected to the X11 SECURITY extension controls.
-y Send log information using the syslog(3) system module. By default this information is sent to stderr.

ssh may additionally obtain configuration data from a per-user configuration file and a system-wide configuration file. The file format and configuration options are described in ssh_config(5). ssh exits with the exit status of the remote command or with 255 if an error occurred.

 Back to top

© 2010 - 2017 STUDIO KINGDOM