.\" $OpenBSD: ssh-agent.1,v 1.46 2007/09/09 11:38:01 sobrado Exp $ .\" .\" Author: Tatu Ylonen .\" Copyright (c) 1995 Tatu Ylonen , Espoo, Finland .\" All rights reserved .\" .\" As far as I am concerned, the code I have written for this software .\" can be used freely for any purpose. Any derived versions of this .\" software must be clearly marked as such, and if the derived work is .\" incompatible with the protocol description in the RFC file, it must be .\" called by a name other than "ssh" or "Secure Shell". .\" .\" Copyright (c) 1999,2000 Markus Friedl. All rights reserved. .\" Copyright (c) 1999 Aaron Campbell. All rights reserved. .\" Copyright (c) 1999 Theo de Raadt. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" .\" Japanese translation: $Id: ssh-agent.1,v 1.2 2008/03/31 14:42:59 yusuke Exp $ .\" by Yusuke Shinyama .\" .Dd $Mdocdate: May 31 2007 $ .Dt SSH-AGENT 1 .Os .Sh 名前 .Nm ssh-agent .Nd 認証エージェント .Sh 書式 .Nm ssh-agent .Op Fl c Li | Fl s .Op Fl d .Op Fl a Ar bindするアドレス .Op Fl t Ar 鍵のデフォルト生存時間 .Op Ar コマンド Op Ar 引数 ... .Pp .Nm .Op Fl c Li | Fl s .Fl k .Sh 説明 .Nm は (RSA や DSA の) 公開鍵認証で使われる認証鍵を保持する プログラムです。基本的には、まず .Nm を X セッションあるいはログインセッションの始めに起動させ、 これ以外のすべてのウインドウやプログラムがその ssh-agent プログラムのクライアントとして起動するようにします。 エージェントは環境変数を使うことにより、他のマシンに .Xr ssh 1 を使ってログインするときに自動的に検出され、認証に利用できます。 .Pp オプションには次のようなものがあります: .Bl -tag -width Ds .It Fl a Ar bindするアドレス Unix ドメインソケットを .Ar bind_address に bind するようにします。 この値は、デフォルトでは .Pa /tmp/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt になっています。 .It Fl c .Dv 標準出力 に C シェル用のコマンドを出力します。 環境変数 .Ev SHELL が csh 系のシェルになっているようなら、 これがデフォルトになります。 .It Fl d デバッグモード。 このオプションが指定されていると、 .Nm は fork しません。 .It Fl k 現在動いている認証エージェント ( 環境変数 .Ev SSH_AGENT_PID で指定されている) を kill します。 .It Fl s .Dv 標準出力 に Bourne シェル用のコマンドを出力します。 環境変数 .Ev SHELL が csh 系以外のシェルのようなら、これがデフォルトです。 .It Fl t Ar 鍵のデフォルト生存時間 エージェントに追加された鍵の最大生存時間のデフォルト値を指定します。 生存時間は秒数、あるいは .Xr sshd_config 5 で使われている形式で指定できます。ですが、この値よりも .Xr ssh-add 1 で値が指定されれば、そちらのほうが優先されます。 このオプションが指定されない場合、いちど追加された鍵は永久に存在しつづけます。 .El .Pp コマンドラインが与えられた場合、そのコマンドは この認証エージェントの子プロセスとして起動されます。 与えたコマンドが終了した場合、認証エージェントも終了します。 .Pp 最初、認証エージェントは鍵をまったく持たない状態で起動されます。 認証鍵をここに追加するには .Xr ssh-add 1 を使います。これを引数なしで起動すると、 .Xr ssh-add 1 は .Pa ~/.ssh/id_rsa , .Pa ~/.ssh/id_dsa および .Pa ~/.ssh/identity の各ファイルを追加します。 この identity ファイルにパスフレーズが必要な場合、 .Xr ssh-add 1 はそのパスフレーズを尋ねてきます (X11 を使っているときは、 .Xr ssh-add 1 は X のちょっとしたアプリケーションを使います。 X を使っていないときは端末を使って尋ねてきます)。 この後、identity ファイルに含まれている認証鍵が 認証エージェントに送られます。 認証エージェントには複数の鍵を格納することができ、 認証エージェントはこれらの鍵を自動的に使用します。 .Ic ssh-add -l を実行すると、現在その認証エージェントによって保持されている 鍵の一覧が表示されます。 .Pp 認証エージェントは、ユーザのローカル PC やノートパソコン、あるいは端末で 実行されるものです。認証用のデータを他のマシンに置く必要はなく、 認証のためのパスフレーズがネットワーク上を流れることも決してありません。 しかし認証エージェントに対する接続は SSH のリモートログインを越えて 転送され、ユーザはその認証鍵によって与えられた権限をネットワーク上の どこでも安全に行使できるというわけです。 .Pp 認証エージェントを使うためには、おもに 2 つの方法があります。 ひとつは、認証エージェントがいくつかの環境変数を export した状態で 新しい子プロセスを走らせる方法で、たとえば .Cm ssh-agent xterm & のようなものです。 もうひとつは認証エージェントにシェル用のコマンドを出力させ (これは .Xr sh 1 あるいは .Xr csh 1 どちらかの文法で生成されます)、 認証エージェントを呼び出したシェルがそのコマンドを評価 (eval) する方法で、たとえば .Xr sh 1 や .Xr ksh 1 などの Bourne シェル系列のシェルの場合は .Cm eval `ssh-agent -s` のようにし、 .Xr csh 1 系列のシェルの場合は .Cm eval `ssh-agent -c` のようにします。 .Pp これ以後 .Xr ssh 1 は認証エージェントに接続するためにこれらの変数の内容を使います。 .Pp エージェントは要求されたチャンネルを経由して秘密鍵を送るようなことは 決してしません。かわりに、秘密鍵が必要な操作はすべてエージェント側で おこない、結果だけが要求した側に返されるようになっています。 このためエージェントを使うことによって秘密鍵がクライアントに 漏れるようなことはありません。 .Pp Unix ドメインのソケットが作られ、そのソケットの名前が .Ev SSH_AUTH_SOCK 環境変数に入れられます。このソケットはそのユーザのみ がアクセス可能ですが、現在のところ root または同一ユーザの 別プロセスによって簡単に悪用される危険性があります。 .Pp .Ev SSH_AGENT_PID 環境変数は認証エージェントの プロセス ID を保持します。 .Pp (訳注: 認証エージェントに子プロセスを起動させた場合、) 指定したコマンドが終了すると、認証エージェントも自動的に終了します。 .Sh 関連ファイル .Bl -tag -width Ds .It Pa ~/.ssh/identity そのユーザがプロトコル バージョン 1 で使う RSA 秘密鍵が 入っています。 .It Pa ~/.ssh/id_dsa そのユーザがプロトコル バージョン 2 で使う DSA 秘密鍵が 入っています。 .It Pa ~/.ssh/id_rsa そのユーザがプロトコル バージョン 2 で使う RSA 秘密鍵が 入っています。 .It Pa /tmp/ssh-XXXXXXXXXX/agent.\*(Ltppid\*(Gt 認証エージェントに対する接続を保持する Unix ドメイン のソケットです。 このソケットは、所有者だけが読めるようになっているはずです。 このソケットは認証エージェントが終了するとき自動的に削除されます。 .El .Sh 関連項目 .Xr ssh 1 , .Xr ssh-add 1 , .Xr ssh-keygen 1 , .Xr sshd 8 .Sh 作者 OpenSSH は Tatu Ylonen による、フリーな オリジナル版 ssh 1.2.12 リリースから派生したものです。 Aaron Campbell、 Bob Beck、 Markus Friedl、 Niels Provos、 Theo de Raadt および Dug Song が多くのバグを取り除き、 新しい機能をふたたび追加して OpenSSH をつくりました。 SSH プロトコル バージョン 1.5 および 2.0 のサポートは Markus Friedl の貢献によるものです。