zz:Windows下通过证书验证登陆SSH

●利用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

image

选择工具中的创建公共key

image

Key生成向导

image

选择key类型

image

确认key的保护密码和相关注释

image

Key长度

image

生成key

image

Key兼容格式

image

是否将刚刚生成的可以用于全局公共key,选是

查看SecureCRT的全局配置的SSH2段,如下图:

image

SSH2全局配置

至此为止利用SecureCRT生成key的步骤已经完成。

 

配置SecureCRT的SSH2 PublicKey连接

由于SecureCRT的key生成工具与软件的集成度很高,生成完key之后,就已经可以在全局配置中看到了相关的信息,如上面的图。需要注意的就是每个session的设置了,可以查看具体session的配置,如下图:

image

单个sessionSSH2配置

image

选中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,下面介绍操作步骤:

image

这就是生成key的对话框,相关参数与SecureCRT的工具类似,不过需要注意一下生成key的过程。有些另类,当用户点击Generate按钮后需要在对话框中移动鼠标,这时候用户会根据用户的鼠标移动坐标来生成key这种生成可以的方法与随机生成还是有些区别的!如下图:

image

生成key后出现如下对话框

image

在这里可以选择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连接

image

选择私钥文件

image

Auto-login中输入用户

image

猜你喜欢

转载自laibulai.iteye.com/blog/941627