打印本文 打印本文 关闭窗口 关闭窗口
Red Hat Linux 253 实验翻译(KevinZ)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数4955  更新时间:2009/4/22 23:08:07  文章录入:mintao  责任编辑:mintao
pg和secring.gpg中。

[alice@localhost]$ ls ~/.gnupg
[alice@localhost]$ echo no-secmem-warning >> ~/.gnupg/gpg.conf

[alice@localhost]$ gpg --list-keys
/home/alice/.gnupg/pubring.gpg
------------------------------
pub 1024D/168F25D7 2003-09-18 Alice (demo key) <alice@station1.com>
sub 1024g/CE26F831 2003-09-18

[alice@localhost]$ gpg --list-secret-keys
/home/alice/.gnupg/secring.gpg
------------------------------
sec 1024D/168F25D7 2003-09-18 Alice (demo key) <alice@station1.com>
ssb 1024g/CE26F831 2003-09-18

4.让bob把他的公钥放在ASCII文件中以便方便的传递给alice。接下来,让alice导入bob的公钥到她的公钥环中去。

[bob@localhost]$ gpg --export --armor Bobby > /tmp/bob.key
[bob@localhost]$ cat /tmp/bob.key

[alice@localhost]$ gpg --import /tmp/bob.key
[alice@localhost]$ gpg --list-keys
/home/alice/.gnupg/pubring.gpg
------------------------------
pub 1024D/168F25D7 2003-09-18 Alice <alice@station1.com>
sub 1024g/CE26F831 2003-09-18

pub 1024D/67C0F0AD 2003-09-18 Bobby <bob@ station1.com >
sub 1024g/FDD05A7A 2003-09-18

5.现在alice获得了bob公钥的副本,并且把它加入到她的公钥环中去。她可以给bob发送加密的消息。使用下面的命令步骤来使得alice发送给bob一个加密的/var/log/dmesg的副本。

[alice@localhost]$ cp /var/log/dmesg message.txt
[alice@localhost]$ gpg --encrypt --armor --recipient Bobby message.txt

[alice@ station1]$ head message.txt.asc
-----BEGIN PGP MESSAGE-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

hQEOAzUJ6BL90Fp6EAP+J1gPH9RHQ1C+CaJGWSzUD2A603nspW2Ab+fQy7rmJbSA
5lwIPe5IzdmgSwMy80aefARQokI/cgdiWpb20Wzy2bltP413j/mrOiworKCOKguH
IJDQPqYxeticJSbwdZoTozsnLmWKp4uxappv3IaSI91w7REgN0KcwVetIn6UsYsE
AIKOqs1oXdYfU3Kzmt3DficQsZDgCuU1mVESCprb7Iyo/TvjjNuc9imqskrSveZZ
vFU8Loc7uI+gQ4HGUpFNryErMbaR2+KQnJCIz9GZJG/Lr7tFND4wCkFsu3jXvN6e
hUl5KRmRV3MWAkdOT4E3ZYF3dOhrdScxnpeIZdL5IDPo0usB9t2ZgIPHp9jKIIAc

[alice@localhost]$ mail -s "here it is" bob <message.txt.asc

6.现在让bob检查他的邮件,保存alice的邮件到文件。如果您不熟悉邮件客户端,您可以使用一个简单的基于命令行的mail工具

[bob@localhost]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/bob": 1 message 1 new
>N 1 alice@stationa Thu Sep 18 22:02 84/4746 "here it is"
& w message_from_alice
"message_from_alice" [New file]
& q

[bob@localhost]$ less message_from_alice
[bob@localhost]$ gpg message_from_alice

您将被提示作为纯文本文件的文件名。使用缺省的message.txt。注意gpg自动的执行期望的动作,即,使用恰当的私钥进行解密。缺省的行为可以通过命令行的参数进行改变。

附加的步骤1的练习

1.使用gpg,使得alice能够向bob发送使用对成密钥加密的消息。

2.使得alice签署和加密消息给bob,bob需要什么其他的附加信息来验证签名

3.使得alice为她的消息建立一个拆离的签名,发送给bob消息和签名。让bob来验证拆离的签名

4.让bob签署alice的公钥,由此使得别人相信alice就是公钥的主人。

步骤2:使用ssh来进行加密的传输


场景A

alice和bob可能是不同工作站上的用户,他们希望建立等同的帐号。也就是说,alice希望访问bob的帐号而不需要输入密码,反之亦然。您将使用ssh提供如此的等同性。

在此步骤中提到的stationa指的是用户alice,然而stationb指的是用户bob。在执行此试验的时候您只需调正西医的步骤以适应您的主机名称。如果您的伙伴一起做这个试验,那么stationa和stationb指的就是您的机器的名称和他的机器的名称。如果您使用单一的机器,那么所有的机器名称将设定为localhost。

1. 确保适当的RPM软件包被安装
[alice@stationa]$ rpm -q openssh
[alice@stationa]$ rpm -q openssh-clients
[alice@stationa]$ rpm -q openssh-server

2.使得root帐户来确定bob机器上的sshd守护进程在运行
[root@stationb]# service sshd start
[root@stationb]# service sshd status

3.如果alice知道bob的密码,那么她可以通过ssh来访问其帐户。注意所有的和bob帐户的交互过程都是加密的,包括密码的传递。作为alice,运行如下的命令,在合适的时候提供bob的密码。

[alice@stationa]$ ssh bob@stationb ls /tmp
[alice@stationa]$ ssh bob@stationb
[alice@stationa]$ scp bob@stationb:/etc/services .
[alice@stationa]$ scp –r bob@stationb:/etc/xinetd.d .

4. 假设alice和bob希望采用更加安全的模式,让alice建立ssh的公钥和密钥对。注意到ssh-keygen应该被-t命令行开关启动,以至于密钥是通过DSA算法生成的。让alice检视其密钥(id_dsa)和公钥(id_dsa.pub)。

[alice@stationa]$ ssh-keygen –t dsa
[alice@stationa]$ ls ~/.ssh
[alice@stationa]$ less ~/.ssh/id_dsa
[alice@stationa]$ less ~/.ssh/id_dsa.pub

选择缺省的密钥位置的选项。同时,在提示的时候,通过按下<ENTER>选择一个空密码 。

5.让alice寄给bob她的公钥的副本。让bob把这个副本保存到文件~/.ssh/authorized_keys中去。

[alice@stationa]$ mail -s "my key" bob < ~/.ssh/id_dsa.pub

[bob@stationb]$ mail
Mail version 8.1 6/6/93. Type ? for help.
"/var/spool/mail/bob": 1 message 1 new
>N 1 alice@stationa Fri Sep 19 15:56 13/982 "my key"
& w alice_key
"alice.key" [New file]
& q

[bob@stationb]$ mkdir ~/.ssh; chmod 700 ~/.ssh
[bob@stationb]$ cat alice_key >> ~/.ssh/autorized_keys
[bob@stationb]$ chmod 600 ~/.ssh/autorized_keys


6. 假设所有的东西都在其正确的地方(即,bob在他的授权的密钥中拥有alice的公钥的副本),alice现在可以访问bob的帐号,而不用提供密码。

[alice@stationa] ssh bob@stationb id
uid=508(bob) gid=508(bob) groups=508(bob)

[alice@stationa] ssh bob@stationb cvzf - /home/bob/ > \
> /tmp/bob.stationb.tgz

如果没有正确的配置的话,那么ssh仍然将会采用密码认证,并且提示alice输入密码。有几个步骤帮助您调试这种情况。首先,检查在服务器上的/var/log/messages和/var/log/secure文件以帮助您获得有用的信息。第二步,在ssh的客户端上采用-v命令行开关。这将会产生有用的调试信息。

7.对于bob也采用相同的配置,以至于其能够进入alice的帐户。

场景B

alice建立了公钥认证的Shell可以访问bob的帐户。她现在要求安全的访问(基于文本的)在bob机器上的Web服务。

1. 确保在bob机器上的Web服务运行正常。如果不是,那么通过root帐号登陆bob的机器,安装并且启动apache web服务。

[alice@stationa]$ lynx http://stationb/

2.使用ssh,使得alice连接到bob的帐户,为了达到另外一种效果,在alice的端口12345(或者其他未使用的端口)到bob的机器的Web服务器(端口80)建立一个加密的管道。

[alice@stationa]$ ssh bob@stationb –L 12345:stationb:80

(并且在另外一个终端)

[alice@stationa]$ lynx http://localhost:12345

alice将能够在步骤1和步骤2看到相同的Web页面。然而在第一步骤中,数据从Web服务器到alice的Lynx客户端是通过明文的方式发送的,这样很容易被嗅探到。在第二步中,数据包从Web服务器通过bob的ssh守护进程,通过密文的形式越过网络到达alice的ssh的客户端,并且解密和传送到alice的lynx客户端。

同时感谢Iknownothing参与翻译工作所付出的辛勤!感谢Mandy在0点后还要忍受那无节奏的打字声!

__________________

 

上一页  [1] [2] [3] [4] [5] [6] 

打印本文 打印本文 关闭窗口 关闭窗口