我们经常使用SSH登录管理服务器,在享受便利的同时也会遇到一些安全隐患,最常见的就是SSH密码被暴力破解。如果我们将SSH密码设置的过于复杂,又不容易记,因此限制SSH登录方式,只能使用ssh-key登录是一个不错的选择,既可以保证安全性,又非常方便。
具体的操作方法如下:
例:通过SecureCRT创建key登录认证
一、生成公钥/密钥对
1、使用SecureCRT的“工具->创建公钥”即可,加密算法选择RSA,因为sshd配置文件中选择了RSA算法
2、通行短语可以不输入。但要求输入,登陆的时候会要求你输入通行短语。并修改Comment相关信息,采用“个人账户名称@服务器信息”方式(可以所有的服务器都使用一个密钥对)
3、填写密钥长度,默认是1024,注意保存好密钥对,建议使用手机保存
4、这里选择生成的密钥使用 OpenSSH Key 格式。如果选择默认的格式,上传到服务器的时候需要执行格式转换的工作,需要通过命令行来连接的也需要通过securecrt来转换私钥为openssh格式,这里建议采用openssh key格式。
5、点击完成后会生成两个文件,默认是Identity和Identity.pub,其中Identity为私钥,Identity.pub为公钥。
二、服务器端的配置
1、上传Windows客户机SecureCRT生成的公钥 Identity.pub到用户目录下.ssh文件夹中,一般是用ftp上传.注意上传之前,一定要以ASCII格式上传。
2、以root用户为例
cd /root/.ssh mv Identity.pub authorized_keys #如果采用的格式不是openssh的话,就需要执行ssh-keygen -i -f Identity.pub>>authorized_keys 命令进行格式转换 chmod 600 authorized_keys
3、更改ssh配置文件
vim /etc/ssh/sshd_config #修改,确认ssh配置文件 PubkeyAuthentication yes #启用公告密钥配对认证方式 AuthorizedKeysFile .ssh/authorized_keys RSAAuthentication yes #允许RSA密钥 PasswordAuthentication no #禁止密码验证登录,如果启用的话,OpenSSH的RSA认证登录就没有意义了。 ChallengeResponseAuthentication no
4、重新加载sshd服务,使用/etc/init.d/ssh restart即可
到此,设置完成。可以通过新建会话来检验,在SecureCRT中新建会话时选择使用公钥认证即可,去掉密码验证,做登陆验证。
登陆测试,输入密钥通行短语,看看是否登录成功!如果登录不成功请从下面几个方面查看:
Ø 权限是否是600
Ø 属主是否正确
Ø 选择创建密钥的时候选择的是否是openssh,如果不是需要转换格式
三、采用命令行方式通过证书登录的设置
Ø 采用的openssh格式的证书的配置
直接将私钥Identity传输到对应的.ssh目录,比如传输到/root/.ssh,chmod 600 /root/.ssh/Identity
ssh -i /root/.ssh/Identity [email protected] #输入通行短语就可以连接进去了
Ø 采用标准公钥和VanDyke私钥格式的配置
先将私钥转化成openssh格式
转换后将Identity私钥转换到对应的.ssh目录,后面的操作和前面一样,这里就不赘述了!
四、Purry使用SecureCRT的私钥做证书登录配置
Ø 采用openssh格式的putty证书配置
直接利用puttygen.exe导入私钥,生成证书
导入后点击save private key保存证书就可以了!
打开purry,选择上一步创建的证书
配置完成,连接服务器看是否OK!
Ø 采用标准公钥和VanDyke私钥格式的putty证书配置
需要先将私钥转换为openssh格式,后面的操作和openssh格式的putty证书配置一样,这里不再赘述!
相关文章
实战 SSH 端口转发2014-09-29
SecureCRT配色方案2014-08-30
CentOS SSH配置2013-12-24