這篇部落格小編就直接簡單的講講linux下gpg的使用啦
Step 1:建立兩個測試使用者
[root@cmq ~]# useradd user1
[root@cmq ~]# useradd user2
修改密碼
[root@cmq ~]# passwd user1
Changing password for user user1.
New UNIX password:
BAD PASSWORD: it is WAY too short
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
[root@cmq ~]# passwd user2
Changing password for user user2.
Step 2:分别切換到兩個使用者下建立對稱密鑰對
[root@cmq ~]# su - user1
[user1@cmq ~]$
[root@cmq ~]# su - user2
user1建立密鑰對:
[user1@cmq ~]$ gpg --gen-key
gpg (GnuPG) 1.4.5; Copyright (C) 2006 Free Software Foundation, Inc.
This program comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to redistribute it
under certain conditions. See the file COPYING for details.
gpg: 已建立目錄‘/home/user1/.gnupg’
gpg: 新的配置檔案‘/home/user1/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/home/user1/.gnupg/gpg.conf’裡的選項于此次運作期間未被使用
gpg: 鑰匙環‘/home/user1/.gnupg/secring.gpg’已建立
gpg: 鑰匙環‘/home/user1/.gnupg/pubring.gpg’已建立
請選擇您要使用的密鑰種類:
(1) DSA 和 ElGamal (預設)
(2) DSA (僅用于簽名)
(5) RSA (僅用于簽名)
您的選擇? 1
DSA 密鑰對會有 1024 位。
ELG-E 密鑰長度應在 1024 位與 4096 位之間。
您想要用多大的密鑰尺寸?(2048)2048
您所要求的密鑰尺寸是 2048 位
請設定這把密鑰的有效期限。
0 = 密鑰永不過期
<n> = 密鑰在 n 天後過期
<n>w = 密鑰在 n 周後過期
<n>m = 密鑰在 n 月後過期
<n>y = 密鑰在 n 年後過期
密鑰的有效期限是?(0) 0
密鑰永遠不會過期
以上正确嗎?(y/n)y
您需要一個使用者辨別來辨識您的密鑰;本軟體會用真實姓名、注釋和電子郵件位址組合
成使用者辨別,如下所示:
“Heinrich Heine (Der Dichter) <[email protected]>”
真實姓名:拓遠教育使用者1 //這裡是支援中文的
電子郵件位址:[email protected] //這裡是郵箱位址啦
注釋:拓遠教育 //注釋可要可不要
您正在使用‘utf-8’字元集。
您標明了這個使用者辨別:
“拓遠教育使用者1 (拓遠教育) <[email protected]>”
更改姓名(N)、注釋(C)、電子郵件位址(E)或确定(O)/退出(Q)?o
您需要一個密碼來保護您的私鑰。 //這裡的密碼可不要忘記啦哈
我們需要生成大量的随機位元組。這個時候您可以多做些瑣事(像是敲打鍵盤、移動
滑鼠、讀寫硬碟之類的),這會讓随機數字發生器有更好的機會獲得足夠的熵數。
+++++++++++++++++++++++++++++++++++.++++++++++++++++++++++++++++++.+++++++++++++++++++++++++++++++++++.++++++++++..++++++++++++++++++++>++++++++++........................................................+++++
随機位元組不夠多。請再做一些其他的瑣事,以使作業系統能搜集到更多的熵!
(還需要284位元組)
滑鼠、讀寫硬碟之類的),這會讓随機數字發生器有更好的機會獲得足夠的熵數。 //這裡的竅門就是狂點滑鼠就是了
++++++++++..++++++++++..++++++++++.+++++.++++++++++++++++++++++++++++++.++++++++++++++++++++.+++++++++++++++++++++++++..+++++++++++++++++++++++++++++++++++>++++++++++>+++++.............+++++^^^
gpg: /home/user1/.gnupg/trustdb.gpg:建立了信任度資料庫
gpg: 密鑰 56DFD81C 被标記為絕對信任
公鑰和私鑰已經生成并經簽名。
gpg: 正在檢查信任度資料庫
gpg: 需要 3 份勉強信任和 1 份完全信任,PGP 信任模型
gpg: 深度:0 有效性: 1 已簽名: 0 信任度:0-,0q,0n,0m,0f,1u
pub 1024D/56DFD81C 2013-05-29
密鑰指紋 = 5B9C 8E4A 5108 8212 F468 7E07 D50A 5AE3 56DF D81C
uid 拓遠教育使用者1 (拓遠教育) <[email protected]> //這個部分要注意啦,這就是使用者的辨別了
sub 2048g/400B185A 2013-05-29
user2建立密鑰對的過程和user1相同
[user2@cmq ~]$ gpg --gen-key
gpg: 已建立目錄‘/home/user2/.gnupg’
gpg: 新的配置檔案‘/home/user2/.gnupg/gpg.conf’已建立
gpg: 警告:在‘/home/user2/.gnupg/gpg.conf’裡的選項于此次運作期間未被使用
gpg: 鑰匙環‘/home/user2/.gnupg/secring.gpg’已建立
gpg: 鑰匙環‘/home/user2/.gnupg/pubring.gpg’已建立
真實姓名:拓遠教育使用者2
電子郵件位址:[email protected]
注釋:拓遠教育
“拓遠教育使用者2 (拓遠教育) <[email protected]>”
您需要一個密碼來保護您的私鑰。
++++++++++++++++++++++++++++++.++++++++++.++++++++++.+++++++++++++++++++++++++++++++++++++++++++++.+++++++++++++++++++++++++.+++++.++++++++++..>.+++++.......................................>+++++.......<.+++++.....+++++
(還需要280位元組)
....+++++.+++++.+++++.+++++.++++++++++.++++++++++++++++++++..++++++++++.+++++++++++++++.++++++++++.+++++...+++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++>+++++...+++++>+++++........................................................+++++^^^
gpg: /home/user2/.gnupg/trustdb.gpg:建立了信任度資料庫
gpg: 密鑰 B1279E8F 被标記為絕對信任
pub 1024D/B1279E8F 2013-05-29
密鑰指紋 = E115 F7A7 1556 AD1D 48CA 7B1A 9677 1EAF B127 9E8F
uid 拓遠教育使用者2 (拓遠教育) <[email protected]>
sub 2048g/4F435842 2013-05-29
Step 3:導出各自的密鑰檔案
我們通常需要導出公鑰和私鑰儲存起來,當然公鑰是可以滿世界的潑灑,但是私鑰請務必儲存好,否則你的密鑰對将會永久性的失去威力。
公鑰的導出:
gpg -o keyfilename –export mykeyID
如果沒有mykeyID則是備份所有的公鑰,-o表示輸出到檔案keyfilename中,如果加上-a
的參數則輸出文本格式( ASCII )的資訊,否則輸出的是二進制格式資訊。
私鑰的導出:
gpg -o keyfilename –export-secret-keys mykeyID
如果沒有mykeyID則是備份所有的私鑰,-o表示輸出到檔案keyfilename中,如果加上-a
的參數則輸出文本格式的資訊,否則輸出的是二進制格式資訊。
user1導出公鑰/私鑰:
[user1@cmq ~]$ gpg --export -a -o user1pub.asc
[user1@cmq ~]$ gpg --export-secret-keys -a -o user1sec.asc
user2導出公鑰/私鑰:
[user2@cmq ~]$ gpg --export -a -o user2pub.asc
[user2@cmq ~]$ gpg --export-secret-keys -a -o user2sec.asc
Step 4:互相交換公鑰并且導入作為後續通信使用
這裡小編使用root使用者來幫助交換兩個使用者的密鑰啦
[root@cmq ~]# cd /home/
[root@cmq home]# cp user1/user1pub.asc user2/
[root@cmq home]# cp user2/user2pub.asc user1/
user1導入user2的公鑰,并且檢視公鑰資訊
[user1@cmq ~]$ gpg --import user2pub.asc
gpg: 密鑰 B1279E8F:公鑰“拓遠教育使用者2 (拓遠教育) <[email protected]>”已導入
gpg: 合計被處理的數量:1
gpg: 已導入:1
<a href="http://wnqcmq.blog.51cto.com/attachment/201305/30/5200614_1369917556zgTW.jpg"></a>
user2導入user1的公鑰
[user2@cmq ~]$ gpg --import user1pub.asc
gpg: 密鑰 56DFD81C:公鑰“拓遠教育使用者1 (拓遠教育) <[email protected]>”已導入
<a href="http://wnqcmq.blog.51cto.com/attachment/201305/30/5200614_1369917563hvNT.jpg"></a>
Step 5:加密通信
user1使用user2的公鑰加密檔案之後發送給user2
[user1@cmq ~]$ gpg -r "拓遠教育使用者2 (拓遠教育) <[email protected]>" -e user1-to-user2 //-e 加密參數 -r參數指明接收者的辨別,也就是接收者的公鑰辨別
gpg: 4F435842:沒有證據表明這把密鑰真的屬于它所聲稱的持有者
pub 2048g/4F435842 2013-05-29 拓遠教育使用者2 (拓遠教育) <[email protected]>
主鑰指紋: E115 F7A7 1556 AD1D 48CA 7B1A 9677 1EAF B127 9E8F
子鑰指紋: 0B47 7E80 DF2A 0493 0D22 3B7A 3ABD 2A38 4F43 5842
這把密鑰并不一定屬于使用者辨別聲稱的那個人。如果您真的知道自
己在做什麼,您可以在下一個問題回答 yes。
無論如何還是使用這把密鑰嗎?(y/N)y
加密之後可以檢視一下檔案看看
[user1@cmq ~]$ vim user1-to-user2.gpg
<a href="http://wnqcmq.blog.51cto.com/attachment/201305/30/5200614_1369917571DnXd.jpg"></a>
使用root使用者将檔案傳遞給user2并解密看看
[root@cmq home]# cp user1/user1-to-user2.gpg user2/
user2使用者解密檔案看看,這裡肯定是使用user2的私鑰解密啦
[user2@cmq ~]$ gpg -o user1-to-user2.txt -d user1-to-user2.gpg //-d是解密參數 -o指明目标檔案
您需要輸入密碼,才能解開這個使用者的私鑰:“拓遠教育使用者2 (拓遠教育) <[email protected]>”
2048 位的 ELG-E 密鑰,鑰匙号 4F435842,建立于 2013-05-29 (主鑰匙号 B1279E8F)
gpg: 由 2048 位的 ELG-E 密鑰加密,鑰匙号為 4F435842、生成于 2013-05-29
注:當然這裡要輸入生成密鑰對時輸入的密碼才行
檢視一下解密之後的檔案
<a href="http://wnqcmq.blog.51cto.com/attachment/201305/30/5200614_1369917580If1c.jpg"></a>
Step 6:數字簽名
這次讓user2使用者發送簽名加密檔案給user1
[user2@cmq ~]$ echo "簽名加密測試" >> user2-to-user1
[user2@cmq ~]$ gpg -s -r "拓遠教育使用者1 (拓遠教育) <[email protected]>" -e user2-to-user1 //-s參數就是簽名啦
1024 位的 DSA 密鑰,鑰匙号 B1279E8F,建立于 2013-05-29
gpg: 400B185A:沒有證據表明這把密鑰真的屬于它所聲稱的持有者
pub 2048g/400B185A 2013-05-29 拓遠教育使用者1 (拓遠教育) <[email protected]>
主鑰指紋: 5B9C 8E4A 5108 8212 F468 7E07 D50A 5AE3 56DF D81C
子鑰指紋: 7DEE DAE5 8D95 2CD6 D088 A982 9989 8C04 400B 185A
使用root使用者将檔案傳輸給user1
[root@cmq home]# cp user2/user2-to-user1.gpg user1/
user1使用者解密檔案并檢視内容
<a href="http://wnqcmq.blog.51cto.com/attachment/201305/30/5200614_1369917586Ao1s.jpg"></a>
檢視一下檔案的内容
<a href="http://wnqcmq.blog.51cto.com/attachment/201305/30/5200614_1369917593aoRM.jpg"></a>
本文轉自 chenming421 51CTO部落格,原文連結:http://blog.51cto.com/wnqcmq/1213362