最近连续三天登陆服务器都发现了不断有人尝试登陆服务器失败的记录。如此繁多的可疑行为,有可能表明了不明黑客正在对服务器进行常见的暴力破解。这该死的行业恶性竞争。看来我是有必要配置密钥登陆来给服务器加上一层安全防御了。最近研究了几个小时已经成功。做个分享。需要的朋友可以按照步骤一步步配置自己的服务器。让我们共同规避黑客。净化网络环境。
因为平时工作学习经常要使用Windows,在SSH远程连接软件里Putty算是用得比较顺手的,而且很小巧。所以以此为例进行配置步骤讲解。
但是每次输入密码很麻烦,还容易输错,OpenSSH可以利用密钥来自动登陆,如此一来方便了不少。配置过程分为三步:
1、生成公钥和私钥
先要下载一个叫puttygen的软件(点此下载:提取码hmpx),在Windows端生成公钥和私钥。
点击Generate开始生成
在生成过程中用鼠标在进度条下面的空白处乱晃几下,产生随机性:
生成完毕,将私钥保存起来:
然后将公钥全选复制。
2、远程主机配置
我这里使用的是CentOS6.4,已经安装了OpenSSH,如果远程主机没有安装的,先要安装。
先连接上远程主机,然后输入命令
1 | vim ~/. ssh /authorized_keys |
按“i”键进入编辑模式(用过vi/vim的都应该知道吧),然后点鼠标右键将刚才复制的公钥粘贴进去,然后按“Esc”,输入wq<Enter>保存。
安全起见,设置验证文件为只读:
1 | chmod 400 ~/. ssh /authorized_keys |
3、Putty端配置
先到Connection-Data项设置自己的登陆用户名,如图(我的是root):
再点SSH项下面的Auth,添加第一步保存的私钥
然后很重要的是要回去Session项里保存!!!不然下次又得重新添加一遍
然后再双击Default Settings里保存的任务,就直接登陆进去了:
(ps:如果之前服务器开启了密码登陆。需要将之前ssh密码登陆给禁用掉。)
至此你的linux服务器已经支持使用SSH私钥证书登录。在你使用SSH Key登录验证成功后,还是为了安全,建议你关闭root用户使用密码登陆,关闭的方法如下:
修改SSH的配置文件vim /etc/ssh/sshd_config,找到下面1行:
PasswordAuthentication yes
修改为:
PasswordAuthentication no
保存后重启SSH服务。
service sshd restart
好了,至此只要你保存好你的私钥(为安全,建议删除服务器端的私钥),你的服务器相比原来使用root用户加密码登陆来说已经安全多了。