前言:
putty,SecureCRT,pieTTY 都是优秀的远程登录工具,根据各人的喜好不同,应用环境不同选择合适自已的工具,在做cisco实验时我喜欢用SecureCRT,远程登录GNU/linux操作系统时,我喜欢用putty,它的FAQ网站是 http://www.chiark.greenend.org.uk/~sgtatham/putty/faq.html,网站是 http://www.putty.org/,下载在 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html,在实验时我们会用的一个工具puttygen也在 http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html页面。
公钥和私钥的概念和作用( http://www.williamlong.info/):
在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。
公钥私钥的原则:
  1. 一个公钥对应一个私钥。
  2. 密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。
  3. 如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。
  4. 如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。
非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的。
实验环境:
(1)软件包:openssh-server,openssh-client,putty,puttygen
(2)安装ubuntu server 10.4操作系统的机器ubserver5,安装windows xp操作系统的机器一台
实验目的:
(1)在服务器上产生密钥对,把私钥拷到客户机器上,利用putty登录。
(2)在客户机上利用puttygen产生密钥对,把公钥拷到服务器上,利用putty登录。
操作:
1,在服务器ubserver5上安装ssh服务,在安装操作系统时,就可以把这两个软件包都安装上
#sudo dpkg –l openssh-server openssh-client
查看这两个软件包是否安装了,如果没有安装,则有以下命令安装
#sudo apt-get install openssh-server openssh-client
安装了以后在/etc/ssh下就有这么两个文件sshd_config,ssh_config前者是ssh服务的配置文件,后者是ssh客户端的配置文件。
2,完成实验目标一
(1)在服务器上产生密钥对
#ssh-keygen –t rsa
ssh1
-t rsa1/rsa/dsa 设置协议的类型
在~/.ssh下就会产生id_rsa私钥,id_rsa.pub公钥
(2)利用winSCP登录到ubserver5,把私钥id_rsa拷下来,用puttygen把id_rsa转换下格式
ssh2
看提示就可以知道要保存下私钥,然后用putty登录。
ssh3
保存私钥
ssh4
(3)在服务器上修改/etc/ssh/sshd_config文件禁止密码方式登录
ssh8 
同时要有以下设置,启用密钥方式登录
ssh13
(4)利用putty登录,选择刚才保存的私钥
ssh6
输入要登录的服务器ubserver5的IP,port为默认的22,这个根据实际的配置做相应的更改
ssh7
这时就可以登录了
3,完成实验目标二,
(1)利用puttygen产生密钥对
ssh5
提示,在以下过程中要在空白的地方移动鼠标产生随机数
ssh10
保存公钥
ssh11
保存私钥
ssh12
(2)利用winSCP把公钥上传到ubserver5的服务器上,并导入~/.ssh/authorized_keys(这个文件若不存在,则要创建这个文件),还要看在/etc/ssh/sshd_config里的设置,是在那个文件进行验证。
ssh9
#cat gy >> .ssh/authorized_keys
#sudo /etc/init.d/ssh restart
(3)利用putty,并选择私钥进行登录。
总结:在linux下会用到ssh-copy-id ,scp命令,ssh服务在生产环境中应用时,必然要考虑到安全性例如只允许哪个用户在哪台机器上登录并且只允许执行哪些命令,也可以利用DenyHOSTS软件 http://denyhosts.sourceforge.net/保证SSH服务的安全性,关于sshd_config的更多配置可参考 http://manpages.ubuntu.com/manpages/hardy/man5/sshd_config.5.html,也可以看http://wiki.ubuntu.org.cn/AdvancedOpenSSH。