●利用SecureCRT/PUTTY工具生成public/private key
→SecureCRT生成public/private key
→在linux配置SecureCRT生成的public key
→配置SecureCRT的SSH2 PublicKey连接
→PUTTY生成public/private key
→在linux中配置PUTTY生成的public key
这里所说的Windows下通过证书验证登陆SSH实际上是在Windows系统下使用SSH终端程序(SecureCRT,PUTTY等)的证书验证方式连接到远程服务器的SSH服务。我们都知道,在linux系统下各个服务器通过SSH无密码登陆的方法,但在Windows下的SSH连接却很少有人介绍。实际上Linux下的无密码登陆SSH使用的就是证书验证的方法,linux命令行下可以使用openssl所提供的ssh-keggen命令很方便的生成SSH 验证key,也就是public/private key。但windows下没有系统集成的命令,我们可以使用SecureCRT或PUTTY提供的key生成工具来生成本机的public/private key,多余的不讲了,下面介绍操作步骤:
利用SecureCRT/PUTTY工具生成public/private key
SecureCRT生成public/private key
选择工具中的创建公共key
Key生成向导
选择key类型
确认key的保护密码和相关注释
Key长度
生成key
Key兼容格式
是否将刚刚生成的可以用于全局公共key,选是
查看SecureCRT的全局配置的SSH2段,如下图:
SSH2全局配置
至此为止利用SecureCRT生成key的步骤已经完成。
配置SecureCRT的SSH2 PublicKey连接
由于SecureCRT的key生成工具与软件的集成度很高,生成完key之后,就已经可以在全局配置中看到了相关的信息,如上面的图。需要注意的就是每个session的设置了,可以查看具体session的配置,如下图:
单个session的SSH2配置
选中Publickey后点击Properties按钮出现的对话框
这个对话框与全局设置时一致的,因此不必做过的的设置。
在linux配置SecureCRT生成的public key
SecureCRT的key生成工具会生成两个文件,一个为私钥(Identity)一个公钥(Identity.pub)。私钥是本机的一个标识。也就是机器的唯一标识符,而公钥则是与私钥配对生成的。我们要做的是将本机的公钥文件复制到我需要SSH连接的服务器上,这样当我么使用私钥连接远程服务器时,远程服务器的SSH程序会将连接过来的主机私钥与存在本地的公钥做一个对比,如果匹配则说明验证成功,允许连接。
将本机公钥内容复制到linux服务器~/.ssh/目录下的authorized_keys文件中即可。如下步骤:
1、打开Identity.pub文件复制内容
2、粘贴到~/.ssh/目录下的authorized_keys文件中。注意Identity.pub的内容复制到哪个用户的.ssh/authorized_keys文件中,则用SecureCRT登陆的时候就需要使用哪个用名,否则SSH可不知道到哪里去找public key。
3、修改远程服务器/etc/ssh/sshd_config 文件
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication no
4、重启sshd服务
5、查看SSH验证记录
sshd[95]: Accepted publickey for root from 192.168.103.116 port 1453 ssh2
sshd[95]: pam_unix(sshd:session): session opened for user root by (uid=0)
看到红色标记出来的文字了吧,SSHD服务接受了证书验证,并且为root用户打开了session。
PUTTY生成public/private key
PUTTY安装后会在目录下会有一个名为PUTTYGEN.EXE的可执行程序,该程序就可以生成key,下面介绍操作步骤:
这就是生成key的对话框,相关参数与SecureCRT的工具类似,不过需要注意一下生成key的过程。有些另类,当用户点击Generate按钮后需要在对话框中移动鼠标,这时候用户会根据用户的鼠标移动坐标来生成key这种生成可以的方法与随机生成还是有些区别的!如下图:
生成key后出现如下对话框
在这里可以选择key的保护密码,写一些key注释等。Save public key 和Save private key分别保存公钥和私钥。
这里我将public保存为putty.pub,private保存为putty.pri
在linux中配置PUTTY生成的public key
其实方法与上面介绍的SecureCRT的类似,只不过有一些小小的出入。经过PuTTY key Generator工具生成的putty.pub(公钥)文件与linux下openssh识别的有些出入,不过修改一下就可以了,如下是PuTTY生成的公钥样例:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20100311" AAAAB3NzaC1yc2EAAAABJQAAAIEAnfJWj79sJn0l3fvb7lc4OJC85/RR5RI+okj+ TvFbbD5ZZ6B3tmO2fqL1SwxK7iZPB23fRgouNsFPnLnM+sPjdEApfzm9VDF4VE1O 0Ge9k1uflvMdgqJbNkZ8ce0AwYgnqCXgTBGlcaIpXK44uUxi7k26xG0tgfn4zeCG Ez9zxsU= ---- END SSH2 PUBLIC KEY ---- |
修改为
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAnfJWj79sJn0l3fvb7lc4OJC85/
RR5RI+okj+TvFbbD5ZZ6B3tmO2fqL1SwxK7iZPB23fRgouNsFPnLnM+sPjdEA
pfzm9VDF4VE1O0Ge9k1uflvMdgqJbNkZ8ce0AwYgnqCXgTBGlcaIpXK44uU
xi7k26xG0tgfn4zeCGEz9zxsU= test@test
将修改后的内容复制到linux系统中的authorized_keys文件即可。注意上面的是没有空行的。
SSH所做的修改上文已经提到,这里不再介绍。
配置PuTTY的SSH2 PublicKey连接
选择私钥文件
Auto-login中输入用户