参考
https://qiita.com/sonots/items/2d7950a68da0a02ba7e4
http://www.net-newbie.com/linux/misc/ssh.1.html
sshクライアントの設定
~/.ssh/config
Compression yes ForwardAgent yes ForwardX11 yes ForwardX11Timeout 0 # ForwardX11Trusted yes
ssh-agent
ssh-agentが切れる
tmux等を使っている場合、FowardAgentが有効な状態でsshログインしなおすと以前のセッションのssh-agentが切れる。
~/.bashrc
agent="$HOME/.ssh/agent" if [ -S "$SSH_AUTH_SOCK" ]; then case $SSH_AUTH_SOCK in /tmp/*/agent.[0-9]*) ln -snf "$SSH_AUTH_SOCK" $agent && export SSH_AUTH_SOCK=$agent esac elif [ -S $agent ]; then export SSH_AUTH_SOCK=$agent else echo "no ssh-agent" fi
を追記して、SSH_AUTH_SOCK を常に最新のものを参照するようにする
以下コピペ
名前
書式
ssh [-l login_name] [hostname | user@hostname] [command]ssh [-afgknqstvxACNPTX1246] [-c cipher_spec] [-e escape_char] [-i identity_file] [-l login_name] [-m mac_spec] [-o option] [-p port] [-L port:host:hostport] [-R port:host:hostport] [hostname | user@hostname] [command]
説明
-
まず、ログイン元のマシンがログ
イン先のマシン上の /etc/hosts.equi v または /etc/ ssh /shosts.equiv に記述されており、かつユーザ名 が両者 のマシンで同じであれば、そのユ ーザはその場でログインを許可さ れる。 次に、リモートマシン上の当該ユ ーザのホームディレクトリに .rhost または .shosts が存在し、かつその中にクライア ントのマシン名および そのマシンにおけるユーザ名を記 述した行があれば、そのユーザは ログ インを許可される。これは安全と はいえないため、この種の認証方 式だ けの場合は通常認めていない。 2番目の認証方式(そして最初の
ものも)は、RSA ベースのホスト認証 と rhosts や hosts.equiv の方式を組み合わせたものである 。これは、 $HOME/.rhosts, $HOME/.shosts, /etc/hosts.equi v, /etc/ ssh /shosts.equiv でログインが許可されていても、 さらにサーバがクライアントのホ スト 鍵(「ファイル」の章の /etc/ ssh /ssh _kn および $HOME/.own_hosts ssh /know を参照)を検査して、それでログn_hosts インを許可 する方式である。この認証方式を 使うと、IP 詐称 (spoofing)、DNS 詐 称、ルーティング詐称といったセ キュリティホールからホストを守 れる。 [ 管理者の方へ:一般的に言って /etc/hosts.equi v, $HOME/.rhosts お よび rlogin/rsh プロトコルはあまり安全なもので はないので、特にセ キュリティが要求されるところで は使わないようにすべきである。 ] 3番目の認証方式として、
ssh は RSA ベースの認証をサポートしている 。 このスキームは公開鍵暗号化に基 づくものである。いくつかの暗号 シス テムでは暗号化と複合化が各々異 なった鍵で行われるが、この場合 、暗 号化用鍵から復号化用鍵を取り出 すのは不可能である。RSA もこのよう なもののうちの1つである。考え 方としては、各ユーザは認証のた めの 公開/秘密鍵のペアを前もって作 成しておく。サーバは公開鍵を知 って おり、ユーザだけが秘密鍵を知っ ている。$HOME/. ssh /authorized_keys には、ログインを許されたユーザ の公開鍵のリストが入っている。 ユー ザがログインする際、 ssh プログラムはどの鍵のペアを認証用に使用す るのかをサーバに知らせる。サー バはその鍵が許可されているかど うか を調べ、許可されていれば、ユー ザ(正確にはユーザ側で動いてい る ssh プログラム)に対してチャレンジを送る。チャレンジとは、ユーザ の公開鍵で暗号化された乱数であ る。チャレンジは、適切な秘密鍵 を使 ってのみ復号化することができる 。ユーザ側のクライアントは自分 の秘 密鍵でチャレンジを復号化して自 分が秘密鍵を知っていることを証 明す るが、それをサーバに開示するこ とはしない。 ssh は RSA 認証プロトコルを自動的に実装する。ユーザは ssh -keygen(1) を走らせて、自分の RSA 鍵のペアを作成する。これにより秘密鍵はユ ーザのホームディレクトリの下の $HOME/. ssh /identity に、公開鍵は $HOME/. ssh /identity.pub に格納される。ユーザは、ide ntity.pub を リモートマシン上の自分のホーム ディレクトリ配下に $HOME/. ssh /authorized_keys としてコピーしなければならない (authorized_key s ファイルは従来の $HOME/.rhosts ファイルに相当す るもので、1行に1つの鍵を保持 するが、1行は非常に長い)。こ れ以 降、ユーザはパスワードなしでロ グインできるようになる。RSA 認証は rhosts 認証に比べて格段に安全である。 RSA 認証を使うためのもっとも便利な
方式として、認証エージェントを 使う方法がある。詳細は ssh -agent(1) を参照されたい。もし他の認証方式が失敗すると、
ssh はパスワード認証を行おうとする。 この際チェックのためにパスワー ドがリモートホストに送られるが 、す べての通信は暗号化されており、 そのネットワークが誰かに盗聴さ れて もパスワードが見られてしまうこ とはない。 -
ユーザが接続をする際、プロトコ
ルバージョン2という異なった認 証方 式を使うこともできる。まず、ク ライアントは公開鍵方式による認 証を 試みる。これに失敗すると、パス ワード認証が試される。 公開鍵方式は前節で述べた RSA 認証によく似ているが、DSA または RSA アルゴリズムを使用するところが
異なる。クライアントは自分の秘 密鍵 である $HOME/. ssh /id_dsa を使ってセッション識別子に署名 を行い、そ の結果をサーバに送付する。サー バではそれに合致する公開鍵を $HOME/. ssh /authorized_keys2 から検索し、両方の鍵が登録され ていて かつ署名が正しければアクセスを 許可する。セッション識別子は共 有の Diffie-Hellman 値から取り出されるが、これはク ライアントとサーバの みが知っている。 公開鍵認証が失敗するかまたは使
用できない場合、パスワードを暗 号化 してリモートホストに送り、ユー ザの独自性を証明してもらうこと がで きる。このプロトコル2の実装で は、Kerberos や S/Key 認証はまだサ ポートされていない。 プロトコル2では追加メカニズム
を提供することにより、信頼性( トラ フィックは 3DES, Blowfish, CAST128 または Arcfour を使って暗号化 される)や完全性(hmac-s ha1, hmac-md5)を向上させて いる。プロト コル1では接続の完全性を確立す るための強力なメカニズムが不足 して いることに注意せよ。 -
サーバによりユーザの正当性が受
け入れられると、サーバは与えら れた コマンドを実行するか、またはユ ーザにそのマシンにログインさせ 、リ モートマシン上でユーザに通常の シェル環境を提供する。リモート コマ ンドまたはリモートシェルとのす べての通信は自動的に暗号化され る。 擬似端末(通常のログインセッシ
ョン)が与えられている場合は、 ユーザ は ~. で切断したり、~^Z で ssh を保留したりできる。すべての中継コ ネクションの一覧は ~# で表示でき、また中継された X11 や TCP/IP コネ クションのセッションブロックが 終了待ちになっている場合、~& でバック グラウンドに回すことができる( ユーザシェルがアクティブの場合 はシェ ルがハングアップしてしまうので 、これは行うべきではない)。使 用可能 な全エスケープシーケンスは ~? で表示できる。 一つのチルダ文字は ~~ を使って送ることができる(チル
ダに続くこれ以 外の文字についてはすでに前述し た)。エスケープ文字の後は、こ れを特 殊文字として扱うために常に改行 文字でなければならない。エスケ ープ文 字は設定ファイルやコマンドライ ンから変更することができる。 擬似 tty が割り当てられなかった場合、そ
のセッションは透過となり、 バイナリデータを安全に転送する のに使えるようになる。ほとんど のシス テムにおいて、エスケープ文字を 'none' にすると、たとえ tty が使われ ていてもそのセッションは透過と なる。 リモートマシン上のコマンドまた
はシェルが存在し、かつすべての X11 や TCP/IP コネクションが閉じられると、セ ッションは終了する。リモー トプログラムの終了ステータスは ssh の終了ステータスとして返される。 -
ユーザが X11 を使っている(DISPLAY 環境変数がセットされている)場
合、X11 ディスプレイへの接続は自動的に リモート側に中継される。動作 としては、シェル(またはコマン ド)から起動されたすべての X11 プロ グラムは暗号化された通信路を通 り、本当の X サーバへの接続がローカ ルマシンからなされる。ユーザは DISPLAY 環境変数を手作業でセットす るべきではない。X11 接続の中継はコマンドラインと設 定ファイルの双方 で行える。 ssh によってセットされた DISPLAY の値はサーバマシンを指しているが、 画面番号は 0 より大きくなる。これが通常の動 作であり、 ssh は暗号化 された通信路上で接続を中継するためのサーバマシン、サーバマシ ン上 に「プロキシの」 X サーバを生成する。 ssh はサーバマシン上で Xauthority データのセットアップを自動的に行う。この目的のために、 ssh はランダムな認証クッキーを生成 し、そ れをサーバ上の Xauthority に格納する。そしてすべての中継 された接 続がこのクッキーを運ぶことをチ ェックし、接続がオープンする時 それ を本当のクッキーで置き換える。 本当の認証クッキーがサーバに送 られ ることはない(またクッキーは平 文では送られない)。 ユーザが認証エージェントを使っ
ている場合、エージェントへの接 続は、 コマンドラインや設定ファイルで 禁止されていない限り自動的にリ モー ト側へ中継される。 任意の TCP/IP コネクションについて安全な通信
路を通るように、コマ ンドラインまたは設定ファイルで 設定することもできる。電子財布 への 安全なコネクションを取り扱う TCP/IP アプリケーションもあるだろう し、フアーウォールを通過するも のもあるだろう。 -
ssh では、過去に使用したことのあるすべてのホストに関しての ID を保持 しているデータベースを管理して おり、その保守と検査が自動的に 行われる。 RSA ホスト鍵はユーザのホームディレ クトリ配下の $HOME/. ssh /know に、プロトコルバージョン2で使n_hosts われる DSA ホスト鍵は $HOME/. ssh /known_hosts2 に格納されている。さらに、既知 のホストについ ては /etc/ ssh /ssh _kn と /etc/own_hosts ssh /ssh _known_hosts2 が自動的 に使われる。新しいホストはすべ て自動的にユーザのファイルに追 加される。 あるホストの ID が変更されると、 ssh はこれに関する警告を発し、パスワ ード認証を不可にすることで、ユ ーザのパスワードを奪おうとする トロイの 木馬に備える。このメカニズムは また、それでもなお man-in-the-midd le (訳註:TCP セッションの乗っ取り)アタック で暗号を回避しようとする試 みを排除する。StrictHo stKeyChecking オプション(後述)により、ホス ト 鍵が不明または変更されたマシン へのログインを禁止することがで きる。
SSH プロトコルバージョン1
SSH プロトコルバージョン2
ログインセッションと遠隔実行
X11 と TCP フォワーディング
サーバ認証
オプション
- 認証エージェント接続の中継を禁
止する。 - 認証エージェント接続の中継を許
可する。これは設定ファイル中で 各 ホスト毎にも指定することができ る。 -
セッションを暗号化するための暗
号化方式を選択する。デフォルト で は 3des が使われる。これは安全であると されている。3des(トリプ ル des)は3つの異なった鍵で暗 号化−復号化−暗号化を行う。こ れ は、もはや ssh では完全にサポートされなくなった des 暗号化に比 べればより安全であると思われる 。blowfish は高速なブロック暗号 方式であり、非常に安全でかつ 3des よりさらに高速である。 -
さらにプロトコルバージョン2で
は、複数の暗号方式を優先度の高 い 順にカンマ区切りで指定すること ができる。詳細は暗号方式を参照 。 -
pty で動作するセッションのエスケー
プ文字を設定する(デフォルト は '~')。エスケープ文字は行の 先頭でのみ認識される。エスケー プ 文字の後にドット('.')が続 くと接続が閉じられ、コントロー ル-Z だと接続を保留し、エスケープ文 字そのものの場合、エスケープ文 字 を一文字送信する。エスケープ文 字を 'none' にするとすべてのエス ープを無効にし、そのセッション を完全に透過にする。 -
コマンドを実行直前にバックグラ
ウンドに切り替えるように ssh に 指示する。これは、ssh がパスワードやパスフレーズを要求するが、 これをバックグラウンドで指定し たい場合に有用である。これは暗 に -n を指定したことになる。リモート サイトで X11 のプログラムを 起動する際は、 ssh -f host xterm などとする方がよいだろう。 -
リモートホストからローカルにフ
ォワードされたポートへの接続を 許 可する。 -
RSA または DSA 認証に使われる ID(秘密鍵)ファイルを選択す
る。 デフォルトはユーザのホームディ レクトリにある $HOME/. ssh /identity である。ID ファイルは設定ファイルにおいて ホスト毎に指定するこ ともできる。複数の -i オプション(および設定ファイル において 複数の ID ファイル)を指定することも可能 。 -
ケルベロスのチケットと AFS トークンの中継を禁止する。これ
は設定 ファイル中でホスト毎に指定する こともできる。 -
リモートマシン上でログインする
際のユーザ名を指定する。これは 設 定ファイル中でホスト毎に指定す ることもできる。 -
さらにプロトコルバージョン2で
は、MAC(message authentication code -- メッセージ認証コード)アルゴリ ズムをカンマで区切って優 先度の高い順に指定することがで きる。詳細は MAC というキーワード を調べてみて欲しい。 - /dev/null から stdin へリダイレクトする(実際には、
stdin から の読み込みを禁止する)。 ssh をバックグラウンドで起動する場 合は これが指定されなければならない 。このオプションは、リモートマ シ ン上で X11 のプログラムを動かすためのトリ ックとしてもよく知ら れている。たとえば ssh -n shadows.cs.hut.fi emacs & とやると shadows.cs.hut. fi 上で emacs が起動するが、同時に暗号化チャ ネ ル上で X11 コネクションが自動的に中継され るようになる。 ssh プ ログラムはバックグラウンド上に置かれる。( ssh がパスワードやパ スフレーズを問い合わせる場合はこれは動作しない。-f オプション を参照のこと)。 - リモートコマンドを実行しない。
これは単にポートの中継だけを行 い たい場合に役立つ(プロトコルバ ージョン2のみ)。 -
設定ファイル中で使われる書式の
中でオプションを与えるのに使用 さ れる。これは別々のコマンドライ ンフラグがない場合にオプション を 指定するのに便利である。このオ プションの書式は、設定ファイル の 各行にある書式と同じである。 -
リモートホストへ接続するポート
。これは設定ファイル中でホスト 毎 に指定することもできる。 - 送出コネクションに関して非特権
ポートを使用する。あなたのファ イ アーウォールが特権ポートからの コネクションを許可していない場 合 に使用できる。このオプションは 、古いサーバのために RhostsAuthentic ation および RhostsRSAAuthen tication をオフにす ることに注意せよ。 - 静粛モード。すべての警告や診断
メッセージを抑制する。致命的エ ラ ーのみが表示される。 - リモートシステムのサブシステム
を呼び出すための要求に使われる こ とがある。サブシステムは SSH2 プロトコルの機能であり、 SSH を他 のアプリケーション(すなわち sftp)のため安全な転送路と して使 えるというもの。サブシステムは リモートコマンドとして指定され る。 - 強制的に擬似 tty を割り当てる。これは、リモート
マシン上でとて も便利に使える任意の画面ベース のプログラム、すなわちメニュー 形 式のサービスを実行するのに使え る。-t を複数個指定すると、 ssh がローカルの tty を持たない場合でも強制的に tty を割り当てる。 - 擬似 tty の割り当てを行わない。
- 冗長モード。
ssh の処理について逐次デバッグメッセージを表示させ る。これは接続や認証、そして設 定の問題をデバッグするのに役立 つ。 -v を複数指定すると冗長度が増す。 最高は3である。 - X11 の中継を行わない。
- X11 の中継を行う。これは設定ファイ
ル上でホスト毎に設定される場合 もある。 - 全データ(stdin, stdout, stderr, および中継された X11 や TCP/IP
のデータも含む)の圧縮を要求す
る。圧縮アルゴリズムは gzip(1) で 使われるのと同じものであり、圧 縮オプション(後述)により 'level' を制御できる。モデム回線やその 他の低速回線で圧縮をかけると効 果 があるが、高速回線ではかえって 遅くなる。デフォルト値は設定フ ァ イル上でホスト毎に設定できる。 後述の圧縮オプションを参照のこ と。 -
ローカル(クライアント)ホスト
上の指定されたポートを、指定さ れた リモートホスト上の指定ポートに 中継(フォワード)するように指 示す る。これは以下のように動作する :ローカル側で listen するべきポー トのソケットを割り当てておき、 このポートに対して接続が行われ たら、 そのコネクションは安全なチャネ ルを経由して中継され、リモート 側の ホスト host の hostport ポートとの間で接続が確立する。 ポートの中 継は設定ファイルで指定すること もできる。特権ポートの中継を行 える のは root のみである。IPv6 アドレスも port/host/hostp ort という 別の書式で指定できる。 -
リモート(サーバ)側ホスト上の
与えられたポートを、ローカル側 の 指定ホスト:ポートに中継する。 これは以下のように動作する:リ モ ート側で listen するべきポートのソケットを割り 当てておき、この ポートに対して接続が行われたら 、そのコネクションは安全なチャ ネ ルを経由して中継され、ローカル マシンからホスト host の hostport ポートとの間で接続が確立する。 ポートの中継は設定ファイルで指 定 することもできる。特権ポートの 中継を行えるのは root のみである。 - プロトコルバージョン2のみを使
用する。 - プロトコルバージョン2のみを使
用する。 - IPv4 アドレスのみを使用する。
- IPv6 アドレスのみを使用する。
-a
-A
-c blowfish|3des
-c cipher_spec
-e ch|^ch|none
-f
-g
-i identity_file
-k
-l login_name
-m mac_spec
-n
-N
-o option
-p port
-P
-q
-s
-t
-T
-v
-x
-X
-C
-L port:host:hostport
-R port:host:hostport
-1
-2
-4
-6
設定ファイル
各パラメータのうち最初に現れた
設定ファイルは以下のような書式
空行および '#' で始まる行はコメントである。
それ以外の場合、各行は「キーワ
- (次の Host キーワードまでの)以下の宣言を
、キーワードに続 くパターンのうちのいずれかにマ ッチしたホストに対してのみに 制限する。'*' と '?' はパターン中のワイルドカードと して使え る。パターンとしての1つの '*' は、すべてのホストのための グローバルデフォルトを表すのに 使える。ホストはコマンドライ ンで与えられた hostname 引数である(すなわちマッチング まで は、ホスト名は正式ホスト名には 変換されない)。 -
AFS トークンをリモートホストに渡す
かどうかを指定する。この キーワードの引数は 'yes' または 'no' でなければならない。 -
'yes' に設定されると、パスフレーズ/
パスワードの問い合わせ は行われなくなる。このオプショ ンは、スクリプト内やその他の バッチジョブなど、パスワードを 入力するユーザがいない場合に 役立つ。引数は 'yes' または 'no' でなければならない。 -
このフラグが 'yes' に設定されると、
ssh はknown_hosts ファ イル内の IP アドレスのチェックを行うようになる。これにより、 ssh は DNS の詐称でホスト鍵が変わったのを検出できるように なる。このオプションが 'no' に設定されると、このチェックは 行われない。 - プロトコルバージョン1において
、セッションを暗号化するのに 使用する暗号化方式を指定する。 現在 `blowfish' と `3des' が サポートされている。デフォルト は `3des' である。 -
プロトコルバージョン2で許可す
る暗号方式を、優先度の高い順 に指定する。複数の方式を指定す る場合はカンマで区切る。デ フォルトは以下の通り: `3des-cbc,blowf ish-cbc,cast128 -cbc,arcfour,ae s128-cbc, aes192-cbc,aes2 56-cbc,rijndael 128-cbc,rijndae l192-cbc, rijndael256-cbc ,rijndael-cbc@l ysator.liu.se' -
圧縮を使用するかどうか。引数は
'yes' または 'no' のいづれ かである。 -
圧縮を有効にしている場合、使用
する圧縮レベルを指定する。引 数は整数で 1(速い)から 9(遅い、最良)までの値を取る 。デ フォルトのレベルは 6 で、これはほとんどのアプリケー ション にとってちょうどよい値である。 値の意味は gzip(1) と同じで ある。 -
rsh 動作に切り替える/終了するまで
に(1秒に一回ずつ)行う リトライ回数を指定する。引数は 整数でなければならない。接続 に失敗することがある場合、スク リプト内で実行する際に便利で ある。 -
公開鍵認証を試すかどうかを指定
する。引数は 'yes' または 'no' のいずれか。このオプションはプ ロトコルバージョン2でのみ適用 されることに注意。 -
エスケープ文字(デフォルトは '~')を設定する。エスケープ
文 字はコマンドラインで設定するこ ともできる。引数は '^' の1 文字の次に何かの文字を続けるか 、または一切のエスケープ文字 を無効にする(すなわちバイナリ データを通すために透過な接続 にする) 'none' である。 -
ssh が connection refused エラーで接続できない(リモート側 で listen している sshd(8) がいない)場合、(当該セッショ ンは暗号化されないという適切な 警告の後)自動的に rsh(1) が 使われるようにするかどうかを指 定する。引数は 'yes' か 'no' のいずれか。 -
認証エージェント(がもしあれば
)への接続をリモートマシンへ 中継するかどうかを指定する。引 数は 'yes' か 'no' のいずれか。 デフォルトは 'no'。 -
X11 コネクションを自動的に安全な通
信路にリダイレクトし、 DISPLAY 環境変数をセットするかどうかを 指定する。引数は 'yes' か 'no' のいずれか。デフォルトは 'no'。 -
リモートホストをローカルに中継
されたポートに接続させるかど うかを指定する。引数は 'yes' か 'no' のいずれか。デフォルト は 'no'。 -
/etc/
ssh /ssh _kn の代わりに使用するファイルを指own_hosts 定す る。 -
ホスト鍵を検索したり
known_hosts ファイルに保存したりする 際、実際のホスト名の代わりに使用するべき別名を指定する。 ssh コネクションをトンネリングしたり、1ホスト上で複数の ssh サーバが動いている場合に、このオプションは役立つ。 -
ログイン先の実際のホスト名を指
定する。これはそのホストのニ ックネームや省略形を指定するの に使われる。デフォルトはコマ ンドラインで指定された名前が使 われる。(コマンドラインと HostName 指定の双方で)数字の IP アドレスを指定してもよい。 -
ユーザの RSA 認証 ID が入っているファイルを指定する
(デフォ ルトはユーザのホームディレクト リにある $HOME/. ssh /identity)。 さらに、認証時には認証エージェ ントによりあらゆる ID 指定が 使われる。ファイル名にはユーザ のホームディレクトリを指すた めのチルダ('~')書式を使っ てもよい。設定ファイル中で複数 の ID ファイルを指定することも可能で ある。これらすべての ID フ ァイルが指定された順に使用され る。 -
システムがキープアライブメッセ
ージを相手側に送るべきかどう かを指定する。送られた場合、接 続が無効になっていたり相手マ シンがクラッシュしていれば、そ れらの事象が適切に報告される。 しかしながら、これは裏を返せば 、途中経路が一時的にダウンし てもそれで接続が切れてしまうと いうことであり、うっとおしい と思うユーザもいるだろう。 デフォルトは 'yes'(キープアライブを送 る)であり、ネットワ ークが落ちたりリモートホストが 死んだりしたら、クライアント はそれを通知する。これはスクリ プト中では重要であり、多くの ユーザもこの動作を望むはずであ る。 キープアライブを無効にするため には、サーバとクライアントの 設定ファイルの双方で 'no' にしてやらなければならない。 -
ケルベロス認証を使うかどうかを
指定する。引数は 'yes' また は 'no' のいずれか。 -
ケルベロス TGT をサーバ側に中継するかどうかを
指定する。こ れはケルベロスサーバが本当に AFS kaserver である場合にのみ 動作する。引数は 'yes' または 'no' のいずれか。 -
リモートマシンから与えられた host:port に対し、安全な通信
路を経由して中継したいローカル
マシン上の TCP/IP ポートを指 定する。第一引数はポート番号で 、第二引数は host:port を指 定する。複数の中継を指定するこ ともでき、また追加の中継指定 はコマンドラインから行うことも できる。特権ポートを中継でき るのはスーパーユーザだけである 。 -
ssh からログメッセージを出力する際の冗長性のレベルを指定す る。指定可能な値は QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG である。デフォルトは INFO。 -
MAC(message authentication code -- メッセージ認証コード)
のアルゴリズムを、優先度の高い
順に指定する。MAC アルゴリズ ムはプロトコルバージョン2でデ ータの統合的な保護のために使 用される。複数のアルゴリズムを 指定する場合はカンマで区切る。 デフォルトは以下の通り: `hmac-sha1,hmac -md5,hmac-ripem d160,hmac-ripem d160@openssh.co m, hmac-sha1-96,hm ac-md5-96' -
パスワードプロンプトをリトライ
する回数を指定する。引数は 整数でなければならない。デフォ ルトは 3。 -
パスワード認証を使用するかどう
かを指定する。引数は 'yes' または 'no' のいずれか。このオプション亜h バージョン1と 2の両方に適用されることに注意 。 - リモートホストに接続する際のポ
ート番号を指定する。デフォ ルトは 22。 -
ssh がサポートするべきプロトコルのバージョンを、優先順位 の高い順に指定する。指定可能な 値は '1' または '2' である。 複数のバージョンを指定する場合 はカンマで区切る。デフォル トは '1,2' である。これはつまり、 ssh はまずバージョン1を 試し、いまくいかなければバージョン2を試してみることを意 味している。 -
サーバへ接続するのに使うコマン
ドを指定する。コマンド文字列 は行末まで拡張され、/bin/ sh により実行される。コマンド文字 列の中で、'%h' は接続先のホスト名に、'%p' はポート番号に置 き換えられる。コマンドは基本的 に何でもよいいが、標準入力か ら入力を行い、標準出力に書き出 すようにする。これはどこかの マシン上で動いている sshd(8) サーバに接続することもあるし、 どこかの sshd -i を実行することもある。ホスト鍵 の管理は接続 先ホストの HostName (デフォルトはユーザがタイプし た名前) を使って行われる。プロキシーコ マンドによる接続では、 CheckHostIP は使えないことに注意。 -
ローカルマシンから与えられた host:port に対し、安全な通信
路を経由して中継したいリモート
マシン上の TCP/IP ポートを指 定する。第一引数はポート番号で 、第二引数は host:port を指 定する。複数の中継を指定するこ ともでき、また追加の中継指定 はコマンドラインから行うことも できる。特権ポートを中継でき るのはスーパーユーザだけである 。 -
rhosts ベースの認証を試みるかどうかを
指定する。この宣言は クライアント側にのみ影響を与え るもので、またセキュリティ に関してはおろそかになる。rh osts 認証を行っていない場合 rhosts 認証を無効にすると、低速回線上 であれば認証にかかる 時間を低減できるかもしれない。 安全ではなくなるため( RhostsRSAAuthen tication を参照)、ほとんどのサーバでは RhostsAuthentic ation を許可していない。 -
RSA ホスト認証とともに rhosts ベースの認証を試行するかどう
かを指定する。これはほとんどの
ホストにおいて通常の認証方法 となっている。引数は 'yes' か 'no' のいずれか。 -
RSA 認証を試行するかどうかを指定す
る。引数は 'yes' か 'no' のいずれか。RSA 認証は ID ファイルが存在するか認証エージ ェ ントが動作している時のみ試され る。このオプションはプロトコ ルバージョン1にのみ適用される ことに注意。 -
チャレンジ - レスポンス方式の認証を使うかど
うかを指定する。 現在は skey(1) 認証のみがサポートされている。 引数は 'yes' か 'no' のいずれか。デフォルトは 'no'。 -
このフラグが 'yes' にセットされている場合、
ssh はホスト鍵 を $HOME/. ssh /know と $HOME/.n_hosts ssh /known_hosts2 に自 動的に追加せず、ホスト鍵が変更 されたホストについては接続を 拒否する。これにより、トロイの 木馬アタックを最大限に防御し ている。しかしながら、/etc / ssh /ssh _known_ および /etc/hosts ssh /ssh _known_hosts2 ファイルが適切にインストールさ れ ておらず、かつ頻繁に新しいホス トに接続するような場合、この 動作はうっとおしく思われるかも しれない。このオプションを設 定すると、ユーザは新しいホスト を手作業で追加しなければなら なくなる。このオプションを 'no' にしておくと、新しいホスト 鍵は自動的にユーザの既知のホス トファイルに追加される。この フラグを 'ask' にすると、ユーザが問い合わせに 対して本当に 登録する旨の確認を行った場合に のみホスト鍵を追加し、ホスト 鍵が変更になった場合は接続を拒 否する。ホスト鍵の検査は、ど のケースにおいても自動的に行わ れる。引数は 'yes', 'no' ま たは 'ask' のいずれか。デフォルトは 'ask'。 -
こちらからの接続について特権ポ
ートを使用するかどうかを指定 する。引数は 'yes' か 'no' のいずれか。デフォルトは 'yes'。 このオプションを 'no' にすると、古いサーバについては RhostsAuthentic ation と RhostsRSAAuthen tication の両方とも 無効となるので注意。 - なんというユーザでログインする
のかを指定する。これは、いく つもの異なったマシンに異なった ユーザ名を持っている場合に重 宝する。これを設定しておけば、 コマンドラインで与えるユーザ 名を覚えておく必要がなくなる。 -
$HOME/.
ssh /know の代わりに使用するファイルを指n_hosts 定する。 - このホストについては rlogin/rsh を使用するべきであることを
指定する。
ssh プロトコルを全くサポートさせないようにするこ ともできる。この場合 ssh はすぐに rsh(1) を起動する。このオ プションが指定されると、 HostName を除く)他のすべてのオプ ションは無視される。引数は 'yes' または 'no' である。 -
xauth(1) プログラムの場所を指定する。デ
フォルトは /usr/bin/X11/xa uth である。
Host
AFSTokenPassing
BatchMode
CheckHostIP
Cipher
Ciphers
Compression
CompressionLevel
ConnectionAttempts
PubkeyAuthentication
EscapeChar
FallBackToRsh
ForwardAgent
ForwardX11
GatewayPorts
GlobalKnownHostsFile
HostKeyAlias
HostName
IdentityFile
KeepAlive
KerberosAuthentication
KerberosTgtPassing
LocalForward
LogLevel
MAC
NumberOfPasswordPrompts
PasswordAuthentication
Port
Protocol
ProxyCommand
RemoteForward
RhostsAuthentication
RhostsRSAAuthentication
RSAAuthentication
ChallengeResponseAuthentication
StrictHostKeyChecking
UsePrivilegedPort
User
UserKnownHostsFile
UseRsh
XAuthLocation
環境変数
通常
-
DISPLAY 環境変数は X11 サーバの位置を表している。これ
は ssh により自動的にセットされ、'hostname:n' の形式の値を持ってい る。ここで hostname はシェルが動いているホストを表 し、n は 1 以上の整数である。 ssh はこの特別な値を、安全な通信路をを 通して X11 コネクションを中継するために使 用する。通常ユーザ は DISPLAY を明示的にセットするべきでない 。これは、X11 コネ クションが安全でなくなるからで ある(さらに、ユーザは要求され た認証クッキーを手作業でコピー する羽目になる)。 - ユーザのホームディレクトリをセ
ットする。 -
USER の別名。この変数を使うシステム
との互換性のためにセット する。 - ユーザのメールボックスを指し示
す。 -
ssh のコンパイル時に指定された、デフォルトの PATH をセット する。 -
エージェントと通信を行うための
unix ドメインソケットのパス を示す。 -
そのコネクションのクライアント
側終端を示す。この変数には 空白で区切られた3つの値がある 。順にクライアントの IP ア ドレス、クライアント側のポート 番号、サーバ側ポート番号で ある。 -
強制的にコマンドが実行された場
合、この変数には元のコマン ドラインが保持される。これは元 の引数を取り出すのに使われる。 -
現在のシェルまたはコマンドに関
連づけられた tty (デバイス へのパス)の名前をセットする。 現在のセッションに tty がな い場合、この変数はセットされな い。 - デーモンが実行を開始したときに
セットされていれば、このタイ ムゾーン変数は現在のタイムゾー ンを示している(すなわち、デ ーモンは新しいコネクションに対 してこの値を渡す)。 - ログインしているユーザの名前を
セットする。
DISPLAY
HOME
LOGNAME
PATH
SSH _AUTH_SOCK
SSH _CLIENT
SSH _ORIGINAL_COMMAND
SSH _TTY
TZ
USER
これらに加え、
ファイル
-
ユーザがログインしたことのある
すべてのホスト(のうち、 /etc/ ssh /ssh _kn にない)のホスト鍵を記録する。own_hosts sshd(8) を参照。 -
ユーザの RSA または DSA 認証 ID を保持する。これらのファ
イルは重要なデータを持っている
ので、ユーザからは読めても 他のユーザからはアクセス (read/write/exe cute) できないよ うにすべきである。 ssh は他のユーザからアクセス可能な秘密 鍵ファイルを無視することに注意 せよ。鍵を生成する際にパス フレーズを指定することもできる 。パスフレーズは、このファ イルの重要な部分を 3DES を使って暗号化するのに使われる 。 -
認証のための公開鍵(すなわち ID ファイルの公開部分を、人間
が読める形式で)を保持する。$
HOME/. ssh /identity.pub ファイ ルの中身を、自分が RSA 認証を使ってログインしたいと思 うす べてのマシン上の $HOME/. ssh /authorized_keys に追加してやら なければならない。また $HOME/. ssh /id_dsa.pub を、自分が DSA 認証を使ってログインしたいと思 うすべてのマシン上の $HOME/. ssh /authorized_keys2 に追加してやらなければならない 。 これらのファイルは秘密ではなく 、誰から読まれても構わない( その必要もないが)。これらのフ ァイルは自動的に使われること はなく、必要でさえない。単にユ ーザの利便性のために提供され ているだけである。 -
これはユーザ毎の設定ファイルで
ある。このファイルの書式はす でに上記で述べた。このファイル は ssh クライアントによって 使われる。このファイルには通常いかなる重要なデータも入るこ とはないが、念のためユーザは read/write 可能とし、他のユー ザからのアクセスパーミッション はすべて落としておこう。 -
このユーザとしてログインするた
めに使われる RSA 鍵の一覧を 保持する。このファイルの書式は sshd(8) マニュアルページで 記述されている。もっとも単純な 書式では、.pub ID ファイル と同一である(すなわち、各行に はその係数におけるビットの 並び、公開されている指数値、係 数、コメントフィールドが空 白で区切られて格納されている) 。このファイルはそんなに機 密性は高くないが、念のためユー ザは read/write 可能とし、 他のユーザのアクセスパーミッシ ョンはすべて落としておこう。 -
このユーザとしてログインするた
めに使われる公開鍵(DSA/R SA) の一覧を保持する。このファイル はそんなに機密性は高くないが、 念のためユーザは read/write 可能とし、他のユーザからのアク セスパーミッションはすべて落と しておこう。 -
システム全体で使用する既知のホ
スト鍵のリスト。 /etc/ ssh /ssh _kn には RSA 鍵が、 /etc/own_hosts ssh /ssh _known_hosts2 にはプロトコルバージョン2の DSA または RSA 鍵が入っている。これらのファイ ルには、組織内の すべてのマシンの公開ホスト鍵が 入るように、システム管理者に よって設定されていることが望ま しい。このファイルは全ユーザ から読めなければならない。この ファイルには、公開鍵が1行に 1つずつ、以下の書式で入ってい る(各フィールドはカンマで区 切られる):システム名、係数に おけるビットの並び、公開され ている指数値、係数、オプション のコメントフィールド。同じマ シンに対して異なった名前が使わ れると、そのようなすべての名 前がカンマで区切ってすべて羅列 されているはずである。この書 式は sshd(8) マニュアルページで説明されてい る。 ログインする際、クライアントホ
ストを確認するために、sshd (8) により(ネームサーバから返され る)正式なシステム名が使われる 。 ssh はユーザが与えた名前を正式な名前に変換しないので、他の 名前も列挙しておく必要がある。 これは、ネームサーバにアクセス できる誰かによって、ホスト認証 のメカニズムを破壊されないよう にするためである。 -
システム全体の設定ファイル。こ
のファイルは、ユーザ毎の設定 ファイルで指定されていない値の デフォルトを決定したり、設定 ファイル自体を持たないユーザの ためのものである。 このファイルは全ユーザからアク セスできなければならない。 -
このファイルは .rhost 認証で使われるもので、ログイン
できる ホストとユーザのペアを列挙する 。(このファイルは rlogin や rsh でも使われるため、このファイル 自体も安全ではないことに 留意しておこう)。このファイル の各行はホスト名(ネームサー バから返される正式名称)に続い てそのホストのユーザ名が空白 で区切って列挙されている。ユー ザのホームディレクトリが NFS でマウントされているようなホス トでは、このファイルは全ユー ザからアクセス可能にしておかな ければならない場合もある。こ れは。sshd(8) はこれを root 権限で読み込むからである。さら に、このファイルの所有者はその ユーザであり、それ以外のユー ザから書き込みが可能になってい てはならない。ほとんどのマシ ンにおいて、そのユーザからは読 み書き可能、他のユーザからは アクセス不可にしておくことが推 奨される。 ただしデフォルトでは sshd(8) がインストールされるので、 .rhosts 認証で許可するのに先立って RSA ホスト認証が正しく 行われる必要があることに注意し
よう。もしあなたのサーバマシ ンの /etc/ ssh /ssh _kn にクライアントのホスト鍵が登 録されていなければ、それを $HOME/.own_hosts ssh /know に登録し ておけばよい。これを行うためのn_hosts もっとも簡単な方法は、そのサ ーバマシンからクライアントに対 して逆方向に ssh で接続して やればよい。これで自動的にホスト鍵が $HOME/. ssh /know に追加される。n_hosts -
このファイルは .rhosts と全く同じように使われる。この
ファ イルが必要となるのは、 ssh で rhosts 認証を使用するが、 rlogin(1) と rsh(1) によるログインは許可したくない場合である。 -
このファイルは .rhosts 認証の間で使用される。この中に
はホ ストの正式名称が1行に1つずつ 格納されている(完全なフォー マットについては sshd(8) マニュアルページに記述されてい る)。 このファイルの記述中にクライア ントのホストがあれば、自動的 にログインが許可され、クライア ントとサーバにおけるユーザ名 は同じものとみなされる。さらに は、通常 RSA のホスト認証が 要求される。このファイルは root によってのみ書き込みができ るようになっているべきである。 -
このファイルは /etc/hosts.equi
v と全く同じように処理される。 このファイルは ssh によるログインを許可するが、rsh/rlogin を使わないという場合に意味があ る。 -
このファイルに書かれているコマ
ンドは、ユーザがログインして、 シェル(またはコマンド)の実行 を開始する直前に実行される。 詳細は sshd(8) のマニュアルを参照のこと。 -
このファイルに書かれているコマ
ンドは、ユーザがログインして、 シェル(またはコマンド)の実行 を開始する直前に実行される。 詳細は sshd(8) のマニュアルを参照のこと。 -
環境変数に対する追加定義を行う
。前述の環境変数のセクション を参照。 -
正しい動作をするためには、RS
A アルゴリズムをサポートするよ うなバージョンのライブラリが必 要である。
$HOME/.ssh /known_hosts
$HOME/.ssh /identity, $HOME/.ssh /id_dsa
$HOME/.ssh /identity.pub, $HOME/.ssh /id_dsa.pub
$HOME/.ssh /config
$HOME/.ssh /authorized_keys
$HOME/.ssh /authorized_keys2
/etc/ssh /ssh _known_hosts , /etc/ssh _known_hosts2
/etc/ssh /ssh _config
$HOME/.rhosts
$HOME/.shosts
/etc/hosts.equiv
/etc/ssh /shosts.equiv
/etc/sshrc
$HOME/.ssh /rc
$HOME/.ssh /environment
libcrypto.so.X.1
作者
翻訳者
[カテゴリ: ネットワーク]
[通知用URL]
Tweet
最終更新時間:2021年01月30日 14時05分45秒