「gpg-agent」の版間の差分

提供: セキュリティ
移動: 案内検索
(関連項目)
 
行6: 行6:
  
 
== 概要 ==
 
== 概要 ==
[[GNU Privacy Guard]]は、プロトコル依存しない[[秘密鍵]]([[プライベート鍵]])を管理するための[[デーモン]]です。[[gpg]]や[[gpgsm]]などのユーティリティから使用されます。
+
[[GNU Privacy Guard]]は、プロトコル依存しない[[秘密鍵]]([[プライベート鍵]])を管理するための'''デーモン'''です。[[gpg]]や'''gpgsm'''などのユーティリティから使用されます。
  
[[gpg-agent]]は、[[gpg]], [[gpgsm]], [[gpgconf]], [[gpg-connect-agent]]によるオンデマンドでたいてい起動されます。だから、手動で起動する必要はありません。[[Secure Shell]] エージェント([[ssh-agent]]のように)として使用した場合は、以下のようにエージェントを起動できます。
+
[[gpg-agent]]は、[[gpg]], '''gpgsm''', '''gpgconf''', '''gpg-connect-agent'''によるオンデマンドでたいてい起動されます。だから、手動で起動する必要はありません。[[Secure Shell]] エージェント([[ssh-agent]]のように)として使用した場合は、以下のようにエージェントを起動できます。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
gpg-connect-agent /bye
 
gpg-connect-agent /bye
行24: 行24:
 
</syntaxhighlight>
 
</syntaxhighlight>
 
このコードは、ユーザーセッションで一度だけエージェントを起動します。
 
このコードは、ユーザーセッションで一度だけエージェントを起動します。
この例では、オプションナルなサポートである[[Secure Shell]]エージェントが有効になっていて、HOMEディレクトリのファイルにエージェントの情報があります。あなたがテストするときに、引数なしに[[pgp-agent]]が起動されているかもしれません。そのような場合に、テストは、[[競合状態]](レースコンディション)になります。
+
この例では、オプションナルなサポートである[[Secure Shell]]エージェントが有効になっていて、HOMEディレクトリのファイルにエージェントの情報があります。あなたがテストするときに、引数なしにpgp-agentが起動されているかもしれません。そのような場合に、テストは、[[競合状態]](レースコンディション)になります。
  
 
次のスクリプトは、それぞれのインタラクティブのセッションで実行される必要があります。
 
次のスクリプトは、それぞれのインタラクティブのセッションで実行される必要があります。
行40: 行40:
 
export GPG_TTY
 
export GPG_TTY
 
</syntaxhighlight>
 
</syntaxhighlight>
 
 
== インストール ==
 
== インストール ==
 
{{ports|/usr/ports/security/gnupg|gnupg}}
 
{{ports|/usr/ports/security/gnupg|gnupg}}
行86: 行85:
 
{{gpg}}
 
{{gpg}}
 
* [[ssh-agent]] ([[ssh]])
 
* [[ssh-agent]] ([[ssh]])
{{ssh}}
+
<!-- vim: filetype=mediawiki
<!-- vim: filetype=mediawiki -->
+
-->

2015年9月22日 (火) 15:16時点における最新版

gpg-agent とは、GnuPGの秘密鍵管理のエージェントプログラムです。

読み方

gpg-agent
じーぴーじ えーじぇんと

概要

GNU Privacy Guardは、プロトコル依存しない秘密鍵(プライベート鍵)を管理するためのデーモンです。gpggpgsmなどのユーティリティから使用されます。

gpg-agentは、gpg, gpgsm, gpgconf, gpg-connect-agentによるオンデマンドでたいてい起動されます。だから、手動で起動する必要はありません。Secure Shell エージェント(ssh-agentのように)として使用した場合は、以下のようにエージェントを起動できます。

gpg-connect-agent /bye

~/.xsession ファイルからよくこのように実行されます。

eval $(gpg-agent --daemon)

X サーバーを使用しない場合には、シェルの設定ファイル .profile, .bash_profile, .login から gpg-agentを起動します。gpg-agentの複数のインスタンを実行するべきではないので、コミュニケーションパラメーターをクライアントに知らせるために環境変数を使用します。実行されているエージェントをテストするために、環境変数をファイルに書き込んでおきます。

gpg-agent --daemon --enable-ssh-support \
	--write-env-file "${HOME}/.gpg-agent-info"

このコードは、ユーザーセッションで一度だけエージェントを起動します。 この例では、オプションナルなサポートであるSecure Shellエージェントが有効になっていて、HOMEディレクトリのファイルにエージェントの情報があります。あなたがテストするときに、引数なしにpgp-agentが起動されているかもしれません。そのような場合に、テストは、競合状態(レースコンディション)になります。

次のスクリプトは、それぞれのインタラクティブのセッションで実行される必要があります。

if [ -f "${HOME}/.gpg-agent-info" ]; then
	. "${HOME}/.gpg-agent-info"
	export GPG_AGENT_INFO
	export SSH_AUTH_SOCK
fi

Secure Shellで使用しない場合は、最後の2行の export ステートメントは不要です。 .bashrc などの初期化ファイルで以下の行を追加しておく必要があります。

GPG_TTY=$(tty)
export GPG_TTY

インストール

FreeBSDにインストールする場合

ports コレクションからインストールする場合

cd /usr/ports/security/gnupg
sudo make install clean

pkgコマンドでインストールする場合

sudo pkg install gnupg

portmasterコマンドでインストールする場合

sudo portmaster -y -d /usr/ports/security/gnupg

portinstallコマンドでインストールする場合

sudo portinstall /usr/ports/security/gnupg

使い方

% gpg-agent --help
gpg-agent (GnuPG) 2.0.18
libgcrypt 1.5.0
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
 
Syntax: gpg-agent [options] [command [args]]
Secret key management for GnuPG
 
Options:
 
     --server                     run in server mode (foreground)
     --daemon                     run in daemon mode (background)
 -v, --verbose                    verbose
 -q, --quiet                      be somewhat more quiet
 -s, --sh                         sh-style command output
 -c, --csh                        csh-style command output
     --options FILE               read options from FILE
     --no-detach                  do not detach from the console
     --no-grab                    do not grab keyboard and mouse
     --log-file                   use a log file for the server
     --use-standard-socket        use a standard location for the socket
     --pinentry-program PGM       use PGM as the PIN-Entry program
     --scdaemon-program PGM       use PGM as the SCdaemon program
     --disable-scdaemon           do not use the SCdaemon
     --keep-tty                   ignore requests to change the TTY
     --keep-display               ignore requests to change the X display
     --default-cache-ttl N        expire cached PINs after N seconds
     --ignore-cache-for-signing   do not use the PIN cache when signing
     --allow-mark-trusted         allow clients to mark keys as "trusted"
     --allow-preset-passphrase    allow presetting passphrase
     --enable-ssh-support         enable ssh-agent emulation
     --write-env-file FILE        write environment settings also to FILE
 
Please report bugs to <http://bugs.gnupg.org>.

関連項目