在用windows时管理linux服务器时,常会用到SecureCRT、Xshell以及开源的putty。在我工作环境大多都是采用密码认证的方式进行登录。今天对学习了些SecureCRT的密钥登录方式。对比密码认证方式,使用密钥认证登录会有以下几个优点:

1、公钥认证允许使用空密码,省去每次登录都需要输入密码的麻烦
2、多用户管理服务器时,可以通过多个公钥登录同一用户下,可以避免因为密码认证被用户都需要密码,导致的密码容易泄密的危险。并且使用passwd修改密码,也不会影响到其他用户的登录。
3、做空密码的公钥认证,为运维自动化提供了便捷方法。
4、如果使用putty软件,暂时不支持密码保存功能,每次登录都必须输入相应的密码,而密钥管理可以方便的进行登录,省去输入密码的麻烦操作。
了解了这个优点后,本文开始关于SecureCRT使用密钥登录设置过程。
1、在SecureCRT上生成密钥。

ssh配置公钥私钥(key)登录SecureCRT_下一步

点击下一步

ssh配置公钥私钥(key)登录SecureCRT_下一步_02

加密方式有两种,分别为DSA和RSA,在OpenSSL都支持,随便选择一个都可以,下一步


ssh配置公钥私钥(key)登录SecureCRT_输入密码_03

输入你登录时候要使用的密码 这个只是你自己的key对应的密码不建议为空。

ssh配置公钥私钥(key)登录SecureCRT_下一步_04

密码的默认长度是1024

ssh配置公钥私钥(key)登录SecureCRT_修改密码_05

密钥生成。

ssh配置公钥私钥(key)登录SecureCRT_输入密码_06


注意这里设置为OpenSSH格式,这样就完成了。


ssh配置公钥私钥(key)登录SecureCRT_工作环境_07

2、把公钥拷贝到服务器
在生成的密钥里面有两个文件,一个公钥文件(Identity.pub),一个私钥(Identity)。
需要把Identity.pub内的内容拷贝到Linux服务器的特定文件中:~/.ssh/authroized_keys
其中,“~”表示对应用户的主目录,以root为例。如果你是用test用户登录的话需要把Identity.pub拷贝到/home/test/.ssh 若.ssh目录不存在,请创建它,并把公钥信息写入文件中:
[root@hr35 ~]# mkdir ~/.ssh 
[root@hr35 ~]# chmod 700 ~/.ssh 
[root@hr35 ~]# vi ~/.ssh/authorized_keys 
[root@hr35 ~]# chmod 644 ~/.ssh/authorized_keys

[root@hr35 ~]# ssh-keygen -i -f /opt/Identity.pub  >> /root/.ssh/authorized_keys 将公钥导入到 authorized_keys文件中

注意:必须要注意~/.ssh 的全新必须为700,~/.ssh/authorized_keys必须为644,否则可能会出现登录不了的情况。

3、在SecureCRT上通过密钥登录
通过以上的配置,基本按照ssh服务端的默认配置是可以通过密钥进行登录,如果还是不能可以检查下前面的步骤,以及后面的ssh服务端配置的相关选项进行适当调整。
配置SecureCRT通过密钥登录linux服务器:

把PublicKey认证调整到第一,


ssh配置公钥私钥(key)登录SecureCRT_下一步_08

Properties,设置本地密钥的存放地址,设置好后。就可以直接连上linux服务了


ssh配置公钥私钥(key)登录SecureCRT_下一步_09









4、OpenSSH服务端配置项说明  
OpenSSH的配置通常保存在:/etc/ssh/sshd_config
PermitRootLogin no # 禁止root用户登陆
StrictModes yes # 检查密钥的用户和权限是否正确,默认打开的
AuthorizedKeysFile .ssh/authorized_keys # 验证公钥的存放路径
PubkeyAuthentication yes # 启用公钥认证
PasswordAuthentication no # 禁止密码认证,默认是打开的。