이 답변의 대부분은 Arch Wiki 와 GnuPG 문서에서 제거되었습니다 . 이 답변의 모든 권장 사항은 전적으로 제 의견이며, 소금 1 톤으로 가져와야합니다.
PGP 키 생성
GUI
Passwords and Keys 앱 (일명 seahorse
)을 열고 다음을 보려면 +
(또는 파일 -> 새로 만들기 로 이동 하거나 CtrlN)을 누르십시오 .
PGP 키를 선택 하고 세부 사항을 입력하십시오. Byte Commander를 가장하고 있습니다.
RSA 및 2048 비트는 대부분의 목적에 적합합니다. 서명에만 사용하려는 경우 드롭 다운 메뉴에서 RSA (서명 만) 옵션을 선택해야하지만 반드시 그럴 필요는 없습니다 . 하위 키를 사용하여 처리 할 수 있습니다 . 의견을 남길 수 있습니다. 키에 만료 날짜를 유지하는 것도 유용합니다. 를 클릭하십시오 Create.
적절하게 긴 비밀번호를 입력하고 (이는 long , 내 예제는 짧음, IMO 임) 다음을 클릭하십시오 Ok.
Seahorse는 CLI와 달리 피드백이없는 것 같습니다. 엔트로피를 수집하고 키를 만드는 동안 원하는 시간 동안 기다립니다. 시간이 걸릴 수 있습니다. 그런 다음 PGP 키 섹션에 키가 표시됩니다 .
CLI
명령 행에서 키를 생성하려면을 실행하십시오 gpg --gen-key
. GUI와 동일한 세부 정보를 요청합니다.
$ gpg --gen-key
gpg (GnuPG) 1.4.16; Copyright (C) 2013 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
Requested keysize is 2048 bits
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 1y
Key expires at Tuesday 27 September 2016 03:45:19 PM IST
Is this correct? (y/N) y
You need a user ID to identify your key; the software constructs the user ID
from the Real Name, Comment and E-mail Address in this form:
"Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
Real name: Byte Commander
E-mail address: byte@command.er
Comment:
You selected this USER-ID:
"Byte Commander <byte@command.er>"
Change (N)ame, (C)omment, (E)-mail or (O)kay/(Q)uit? o
You need a Passphrase to protect your secret key.
passphrase not correctly repeated; try again.
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, use the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 186 more bytes)
.....+++++
+++++
We need to generate a lot of random bytes. It is a good idea to perform
some other action (type on the keyboard, move the mouse, use the
disks) during the prime generation; this gives the random number
generator a better chance to gain enough entropy.
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 80 more bytes)
....+++++
Not enough random bytes available. Please do some other work to give
the OS a chance to collect more entropy! (Need 83 more bytes)
...+++++
gpg: key 8AE670A6 marked as ultimately trusted
public and secret key created and signed.
gpg: checking the trustdb
gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model
gpg: depth: 0 valid: 2 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 2u
gpg: next trustdb check due at 2016-09-26
pub 2048R/8AE670A6 2015-09-28 [expires: 2016-09-27]
Key fingerprint = 82D9 0644 B265 8E75 1E01 538B B479 3CF4 8AE6 70A6
uid Byte Commander <byte@command.er>
sub 2048R/0E2F4FD8 2015-09-28 [expires: 2016-09-27]
GnuPG가 더 많은 엔트로피를 필요로한다는 것을 주목하십시오. 소원 해마도 했어요. 그러나 GnuPG가 Oliver Twist처럼 행동하는 것처럼 느껴집니다. :피
키 공개
이제 공개 키를 가져와야 사람들이 키를 사용하여 확인할 수 있습니다.
GUI
seahorse
앱 의 PGP 키 목록으로 돌아갑니다 (마지막 스크린 샷 참조). 내보낼 키를 선택하고 원격 메뉴에서 동기화 및 게시 키를 선택 하십시오 .
Sync당신이 게시 할 서버를 선택하지 않은 경우 버튼이 비활성화됩니다. Key Servers버튼 을 클릭하면됩니다 :
우분투 서버를 선택했습니다.
이제 Sync버튼을 클릭하여 우분투의 키 서버에 게시 할 수 있습니다 (스팸 우분투 죄송합니다!).
CLI
CLI를 사용하면 공개하려는 키의 키 ID가 필요합니다. 키를 만들 때 출력의 마지막 줄입니다 ( 8AE670A6
). 내용이 기억 나지 않으면 실행하십시오 gpg --list-keys
. 출판하다:
$ gpg --keyserver pgp.mit.edu --send-keys 8AE670A6
gpg: sending key 8AE670A6 to hkp server pgp.mit.edu
죄송합니다, MIT .
서명
문서에 서명하는 편리한 GUI 방법을 아직 모른다.
서명하려는 파일을 작성했으면 터미널로 이동하십시오. 시도 gpg --list-keys
:
$ gpg --list-keys
/home/muru/.gnupg/pubring.gpg
---------------------------
pub 2048R/F7878B0C 2015-09-28 [expires: 2016-09-26]
uid Byte Commander <byte@command.er>
sub 2048R/345B9A4F 2015-09-28 [expires: 2016-09-26]
두 가지 방법으로 파일에 서명 할 수 있습니다.
암호화로 서명
$ gpg --sign --output examples.sig examples.desktop
You need a passphrase to unlock the secret key for
user: "Byte Commander <byte@command.er>"
2048-bit RSA key, ID F7878B0C, created 2015-09-28
gpg: Invalid passphrase; please try again ...
You need a passphrase to unlock the secret key for
user: "Byte Commander <byte@command.er>"
2048-bit RSA key, ID F7878B0C, created 2015-09-28
데스크톱 세션을 사용하는 경우 그래픽 암호 프롬프트가 표시 될 수 있습니다. 예를 들어, 그놈에서 :
수신자에게 공개 키가 있으면이를 확인하거나 해독 된 콘텐츠를 얻을 수 있습니다.
$ gpg --verify examples.sig
gpg: Signature made Monday 28 September 2015 03:25:00 PM IST using RSA key ID F7878B0C
gpg: Good signature from "Byte Commander <byte@command.er>"
$ gpg --decrypt examples.sig
[Desktop Entry]
Version=1.0
Type=Link
Name=Examples
Name[aa]=Ceelallo
...
URL=file:///usr/share/example-content/
Icon=folder
X-Ubuntu-Gettext-Domain=example-content
gpg: Signature made Monday 28 September 2015 03:25:00 PM IST using RSA key ID F7878B0C
gpg: Good signature from "Byte Commander <byte@command.er>"
일반 텍스트로 서명
예를 들어 메일을 보낼 때 내용을 암호화하지 않을 수 있습니다. 이 경우 다음 --clearsign
옵션을 사용하십시오 .
$ gpg --clearsign examples.desktop
You need a passphrase to unlock the secret key for
user: "Byte Commander <byte@command.er>"
2048-bit RSA key, ID F7878B0C, created 2015-09-28
$ cat examples.desktop.asc
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
[Desktop Entry]
Version=1.0
Type=Link
Name=Examples
Name[aa]=Ceelallo
...
URL=file:///usr/share/example-content/
Icon=folder
X-Ubuntu-Gettext-Domain=example-content
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQEcBAEBAgAGBQJWCRAaAAoJEGUZkqX3h4sMBWsH/1yw+G0v5Ck+T3PBS90SkvC8
5C0FJeGVr0AgYQohhsE3zEGQ7nn53N7JsvNlF6VccvN99DZIp18JbrJ+qs5hWjtg
KU/ACleR5dvVrJgfjppkuC8Q3cAudvqciKlLjA7Xycr3P49oCNCy8k/ue2TrgCvS
mMb5IS/kqpO7wrOMBAR0c/2CjQsA91S1/YK7DbuUqeNgEzW1grsI7XZPhiDGpAib
D20HWrbdLhklAEJuo1EvuOIggW6MF6ksxDoVapsUzQalD0TWEq6OnvzIS5qhITrc
XaDPQJpiHyCyINnL5aZCUwr2uon7osJ+2a8Ahp1REpzIZTdND9jA5NWSel5+yAs=
=ZrtB
-----END PGP SIGNATURE-----
별도의 서명 파일 (서명 된 서명)을 사용하여 서명
마지막으로 일부 파일의 경우 문서에 서명을 가질 수 없습니다. 예를 들어, 패키징 파일 또는 리포지토리의 메타 데이터는 모두 포함 된 서명을 쉽게 허용하지 않는 특정 특성의 콘텐츠를 가지고 있습니다. 이 경우 다음 --detached-sig
옵션 을 사용하십시오 .
$ gpg --output examples.desktop.sig --detach-sign examples.desktop
You need a passphrase to unlock the secret key for
user: "Byte Commander <byte@command.er>"
2048-bit RSA key, ID F7878B0C, created 2015-09-28
$ gpg --verify examples.desktop.sig examples.desktop
gpg: Signature made Monday 28 September 2015 03:35:55 PM IST using RSA key ID F7878B0C
gpg: Good signature from "Byte Commander <byte@command.er>"
노트
암호화 + 서명 및 분리 된 서명에서 출력 gpg
은 이진입니다. --armor
옵션 (ASCII-armoured)을 사용하여 GnuPG 출력 base64로 인코딩 된 데이터를 가질 수 있습니다 .
오토메이션
스크립트 서명을 위해 다음을 수행 할 수 있습니다.
- 키에 빈 암호를 사용하십시오
- GnuPG 버전에 따라을 통해 암호를 보내십시오
stdin
. 일부 옵션에 대해서는 이 유닉스 및 리눅스 게시물 을 참조하십시오 .