通过SecureCRT创建key登录认证

一、生成公钥/密钥对

使用SecureCRT的    工具->创建公钥 即可,加密算法选择RSA,因为sshd配置文件中选择了RSA算法

 

securecrt 使用公钥登录_securecrt 使用公钥登录

securecrt 使用公钥登录_服务器端_02

securecrt 使用公钥登录_上传_03

这一步中,通行短语可以不输入。但要求输入,登陆的时候会要求你输入通行短语。

并修改Comment 相关信息,采用   个人账户名称@服务器信息 方式

(可以所有的服务器都使用一个密钥对)

securecrt 使用公钥登录_服务器端_04

填写密钥长度,默认是1024

securecrt 使用公钥登录_securecrt 使用公钥登录_05

注意保存好密钥对,建议使用手机保存

这里选择生成的密钥使用 OpenSSH Key 格式。如果选择默认的格式,上传到服务器的时候需要执行格式转换的工作,需要通过命令行来连接的也需要通过securecrt来转换私钥为openssh格式,这里建议采用openssh key格式!

点击完成后会生成两个文件,默认是Identity和Identity.pub,其中Identity为私钥,Identity.pub为公钥。

 

 

二、服务器端的配置

上传Windows客户机SecureCRT生成的公钥 Identity.pub到用户home目录下.ssh文件夹中,一般是用ftp上传.注意上传之前,一定要以ASCII格式上传。

以本人用户为例

cd /home/yangzg

mkdir .ssh  #在需要开启ssh连接的用户目录下建立 .ssh目录

chmod 700 .ssh

cd .ssh

mv Identity.pub authorized_keys  #如果采用的格式不是openssh的话,就需要执行ssh-keygen -i -f Identity.pub >>authorized_keys 命令进行格式转换

chmod 644 .ssh/authorized_keys

 

              更改ssh配置文件

vim /etc/ssh/sshd_config #修改,确认 ssh配置文件

PermitRootLogin no                       #禁止root登录

PubkeyAuthentication yes                  #启用公告密钥配对认证方式

AuthorizedKeysFile .ssh/authorized_keys

RSAAuthentication yes                    #允许RSA密钥

PasswordAuthentication no                #禁止密码验证登录,如果启用的话,OpenSSH的 RSA认证登录就没有意义了。

重新加载sshd服务,使用/etc/init.d/ssh restart即可

到此,设置完成。可能通过新建会话来检验,在SecureCRT中新建会话时选择使用公钥认证即可,去掉密码验证,做登陆验证。

securecrt 使用公钥登录_服务器_06

    

登陆测试,输入密钥通行短语,看看是否登录成功!如果登录不成功请从下面几个方面查看:

Ø  权限是否是644

Ø  属主是否正确

Ø  选择创建密钥的时候选择的是否是openssh,如果不是需要转换格式

                  


三、采用命令行方式通过证书登录的设置

Ø  采用的openssh格式的证书的配置

直接将私钥Identity传输到对应的.ssh目录,比如传输到/home/zhangxy/.ssh,chmod 600 /home/zhangxy/.ssh/Identity

ssh -i /home/zhangxy/.ssh/Identity zhangxy@172.16.88.11  输入通行短语就可以连接进去了

Ø  采用标准公钥和VanDyke私钥格式的配置

先将私钥转化成openssh格式

securecrt 使用公钥登录_securecrt 使用公钥登录_07

转换后将Identity私钥转换到对应的.ssh目录,后面的操作和前面一样,这里就不赘述了!

 

 

四、Purry使用SecureCRT的私钥做证书登录配置

Ø  采用openssh格式的putty证书配置

直接利用puttygen.exe导入私钥,生成证书

 

securecrt 使用公钥登录_服务器_08

导入后点击save private key保存证书就可以了!

打开purry,选择上一步创建的证书

securecrt 使用公钥登录_服务器_09

配置完成,连接服务器看是否OK!

 

Ø  采用标准公钥和VanDyke私钥格式的putty证书配置

需要先将私钥转换为openssh格式,后面的操作和openssh格式的putty证书配置一样,这里不再赘述!

 

 

 

服务器下SSH的配置与问题

服务器端

 

1.在服务器端安装ssh

 


sudo aptitude install ssh


2.产生key


ssh-keygen -d


输入密码,然后产生id_dsa.pub 和id_dsa。

3.将公匙放到服务器端


mkdir ~/.ssh

mv id_dsa.pub ~/.ssh/authorized_keys

sudo chmod 600 ~/.ssh/authorized_keys

同时将id_rsa拷到U盘。

Sudo chmod 600 ~/.ssh


4.配置SSH


cd /etc/ssh

cp sshd_config sshd_config.backup

vim sshd_config


PermitRootLogin no

PasswordAuthentication no

UsePAM no

这样关掉了root登陆和使用密码登陆。

5.重启SSH


sudo /etc/inti.d/ssh restart


 

 

客户端

我使用的putty。

认证的地方不能直接用id_dsa,会报错误


Unable to use key file "id_rsa" (OpenSSH SSH-2 private key)


这是openssh使用的私钥格式与putty使用的私钥格式不一样。

这时候,打开puttygen.exe load id_dsa。然后保存private key。生成后缀是ppk的私钥。

如果报错误哦


Couldn't load private key (ciphers other than DES-EDE3-CBC not supported)


这是puttygen.exe的版本问题


如果你直接用puttygen.exe生成一堆key。然后将public拷到服务器端的~/.ssh/authorized_keys,会报错:


Server Refused Our Key


这里有解决方法,没试过。最好的方法时用linux的ssh-keygen产生密钥然后用puttygen.exe进行转换。