1

(ローカルマシンで)GPG(wingpg)-コマンドラインバージョンを実行しています。

win7での私のログイン名はですRoyiN。(だから私はそれのプロファイルを持っています)

ログインしたとき-プライベートとパブリックの両方のキーを(PKA.exeを使用して)インストールしました。

大丈夫だ。

それから私はこのコードを書きました(これは機能しています)

  Process proc = new Process();
  proc.StartInfo.FileName = cfg.PGP_Program_FullPath;
  proc.StartInfo.UserName = "Royin";
  proc.StartInfo.Domain = ...;
  proc.StartInfo.Password = ...
  proc.StartInfo.Verb = "runas";
  proc.Start();
 ...

ただし、UserNameフィールド( ローカルマシンの管理者でもある別のユーザー)に書き込むと、次のように表示されます。

gpg:復号化に失敗しました:秘密鍵がありません

それから私は再び交換しました、RoyiNそしてそれは働きました

  • キーはユーザーごとにインストールされていますか?グローバルになるように変更する方法はありますか?(したがって、マシン上のすべてのユーザーがこれらのキーを使用できるようになります-すべてのプロファイルの下にキーをインストールする必要はありません)

  • RoiyNまた、他の人が自分のコンピューターに接続できるようにする場合は、 24時間年中無休でログオンする必要があります。

これに対する回避策はありますか?

4

2 に答える 2

4

ここで起こっているのは、gpgを実行している「人」に関連する2つの異なることです。

  • GPGは、ユーザープロファイルディレクトリ(という名前のフォルダの下)にインストールされているデフォルトのキーリングファイルでキーを検索します.gnupgpubring.gpgこれは、とのようなファイルのセットになりますsecring.gpg。この部分は簡単に回避--secret-keyring "path\to\file"できます。パラメータの1つとして渡すと、そのキーリングファイルが検索パスに追加されます。最初に、のように、一般に読み取り可能な場所に移動することをお勧めします%ALLUSERSPROFILE%

  • それとは別に、GnuPGキーは、通常は電子メールアドレスであるIDに対して生成され、関連付けられます。ファイルを受信するとき、データは、完全性を復号化および/または検証するためにキーが必要とされる人物の識別を指定します。ファイルを暗号化または署名するときは、使用するキーをGPGに指示する必要があります。秘密鍵は、他の人のために署名するとき、または送信されたデータを復号化するときに使用されます。使用するキーリングファイルの場所に関係なく、適切なキーが含まれていることを確認する必要があります。

gpgを実行するときに、データの明示的な場所を指定すれば、実際にログインしたままにする必要はありません。gpgは、デフォルトで、ログイン時に設定された現在の環境変数を読み取り、それらがどこにあるかを判別するだけです。

GPGを無人で実行する場合は、キーリングファイルパス、シークレットキーリングファイルパス、および構成ファイルパスを指定する必要があります。指定できるオプションの全リストは、GPG構成オプションページにあります。

--homedir(オプションだけから始めてみてください。これにより、他のすべてのデフォルトパスが一度に上書きされると思いますが、それをテストして確認する必要があります。)

于 2012-12-26T14:10:21.083 に答える
3

はい、ユーザーごとにインストールされます

簡単な答え-秘密鍵と公開鍵のペアをエクスポートし、管理者アカウントにもインストールするだけです。

ただし、自動化されたシステム用に独自の公開鍵を使用して別の鍵を作成することをお勧めします。信頼性の高い鍵を持っている人は誰でも、これも受け入れます。

于 2012-12-26T14:05:56.430 に答える