1、使用命令生成公钥。
添加姓名和邮件地址的规则:
姓名使用全拼(User Name),姓和名的第一个字母要大写,姓和名之间要有一个空格
邮箱(username@)
$ gpg --gen-key
2、使用命令查看生成的公钥。
$ gpg --list-keys
/root/.gnupg/pubring.gpg
----------------------------
pub 1024D/40C00693 2008-07-31
uid User Name <username@>
sub 2048g/57D94832 2008-07-31
---------------------------------------------------------------------------
注意:上例中1024D/40C00693 中的40C00693 称为 keyid。
---------------------------------------------------------------------------
3、备份、导出公钥,私钥和 revoke key。
$ gpg --export -a keyid > name-pubkey.asc # 公钥
$ gpg --export-secret-keys -a keyid > name-seckey.asc # 私钥
$ gpg --gen-revoke keyid > name-revoke.asc # revoke key
4、生成公钥后首先要增加环境变量
$ vi ~/.bashrc
DEBEMAIL="username@test.com.cn"
DEBFULLNAME="User Name"
GPG_KEY=40C00693 <------ 这是公钥的 ID(keyid),使用 gpg --list-keys 显示公钥时,Pub 选项显示的内容
export DEBEMAIL DEBFULLNAME GPG_KEY
---------------------------------------------------------------------------
举例说明
a、构建编译环境,随便下载个源码包gtfp,并修改代码。
$ sudo apt-get build-dep gftp #build-dep - 为源码包配置所需的构建依赖关系,会先下载源码包编译所依赖的包
$ apt-get source gftp
b、为了自动化修改deb包中 $/DEBIAN/changelog文件 需要安装 devscripts 等脚本。
$ sudo apt-get install devscripts
c、执行命令修改deb包中$/debian/changelog 文件。
$ cd gftp目录
$ dch -i #自动会打开debian/changelog文件
---------------------------------------------------------------------------
可以看到自动添加的名称和邮件地址,根据规范修改版本号和注释。
---------------------------------------------------------------------------
gftp (2.0.18-17ubuntu2cocreate2) zealot; urgency=low
* test
-- Zhou Yang <test@test.com.cn> Thu, 31 Jul 2008 21:27:39 +0800 <-------------自动添加
gftp (2.0.18-17ubuntu1) hardy; urgency=low
* Sync with Debian
* debian/control:
- updated maintainer information
d、如果是首次修改 Ubuntu 的包,还需要修改deb包中$/debian/control 文件中的 Maintainer 部分。
---------------------------------------------------------------------------
将原有的 Maintainer 信息覆盖到 XSBC-Original-Maintainer 中
重新在 Maintainer 中写入自己的信息。如下:
---------------------------------------------------------------------------
Source: gftp
Section: net
Priority: optional
Maintainer: User Name <email地址>
XSBC-Original-Maintainer: Ubuntu MOTU Developers <ubuntu-motu@lists.ubuntu.com>
Standards-Version: 2.0.18
......
......
e、(在想要发布的工程目录)编译打包(把生成的公钥一起加入包里),-sa 表示是否带有源码, -k表示添加公钥。编译完后会产生.changes文件
#编译带自己签名的deb包
$ dpkg-buildpackage -sa -k$GPG_KEY
---------------------------------------------------------------------------
使用普通用户可能会提示需要安装 fakeroot 请 sudo 安装 fakeroot
正确情况下,编译的最后阶段会提示你输入公钥的解锁密码(创建公钥时添加的密码)。
---------------------------------------------------------------------------
f、上传新打的包。指定了.changes文件后会自动上想要发布的软件包
$ dput gftp_0.0.00-00ubuntu0cocreate0_i386.changes
#############################################################################
利用gpg产生的私钥来加密 文件
加密:
gpg -s -r test@test.com.cn out.txt //-r参数: 接收者, 会生成out.txt.pgp加密文件
解密pgp文件:
gpg --decrypt out.txt.gpg > o.txt //会提示用户输入解开私钥的密码