加强SSH服务器安全-公钥密钥认证

传统的SSH服务器默认是使用的Linux用户进行认证,采用帐号密码认证必然存在密码被泄漏被爆破等威胁,最近咱无聊打算研究下网络安全领域的知识,也正打算才用证书方式认证我的相关服务器,WiFi网络等。

SSH才用公钥密钥认证,实际上就是使用的RSA方式进行公钥密钥认证,至于RSA是什么,如果有兴趣的朋友想了解可以移步至维基百科,传送门在这里:http://zh.wikipedia.org/wiki/RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95

接下来就开始说说具体操作步骤:

首先我们需要在服务器上为当前账户创建一个公钥密钥,通常来说应该是root,如果是其他的账户也许会比较麻烦。

执行命令:

ssh-keygen -t rsa

第一个提示是路径 默认即可,第二个提示输入passphrase,这个就是给这个密钥文件设置一个密码,在这里我强烈建议大家一定要设置,如果没有设置 密钥泄漏了什么的,就呵呵呵了。

输入完成以后 你会看见一个非常美丽又莫名其妙的图形,这就说明密钥公钥已经产生。

这个时候执行命令

cd ~/.ssh

ls

你会看见有几个文件 ,其中有2个文件特别重要 分别是 id_rsa 和 id_rsa.pub  前者为密钥,也就是我们登陆所需要的东西。 先通过SFTP或者其他方法下载下来进行保存(非常重要,如果忘记了,服务器没法登陆了可别怪我,我反正悲剧过一次 至于你信不信)

接下来执行这个命令

cat  id_rsa.pub >> ~/.ssh/authorized_keys

将公钥文件复制一份 并改名为 authorized_keys

然后编辑ssh配置文件,通常来说配置文件是:/etc/ssh/sshd_config  当然不同的服务器可能不一样

修改下面这几个地方(我喜欢用nano 所以我用 Ctrl+W查询)

#设置公钥

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

#关闭密码认证 因为我们打算用公钥密钥来连接了

PasswordAuthentication no

配置好服务器以后 再次确认 密钥文件是否下载了,否则悲剧了别找我 重启SSH服务器 生效

#Debian/ubuntu : 

/etc/init.d/ssh restart

#CentOS

service sshd restart

重启完毕以后 就OK了,下次连接SSH的时候 已经是要求必须用证书认证了。

至于客户端如何连接,具体方法就是 将密钥导入到密钥管理器一类的东西里面,SSH软件过多,我这里就简单的说下 我用的 Bitvise SSH Client 和 FlashFXP

Bitvise SSH Client:

 

rsa

FlashFXP:

RSA1

RSA2

RSA3

RSA4

一切顺利你将会看见这些相当霸气的加密提示,这个时候你应该想说:我和我的小伙伴们都惊呆了

发布者

Zmsky

http://xloli.net/?page_id=11

《加强SSH服务器安全-公钥密钥认证》上有2条评论

发表评论

This site uses Akismet to reduce spam. Learn how your comment data is processed.