Linux服务器SSH密钥登录配置


SSH(secure shell)是用于管理服务器和与服务器通信的加密协议,使用安全密钥登录Linux服务器在安全与时间上都有很大优势。

Linux密钥登录准备工作

SSH密钥登录配置的第一步是生成密钥,密钥生成可以使用系统自带的ssh-keygen功能,或使用puttygen工具,以puttygen工具为例,下载puttygen并安装,如果安装完成桌面上没有快捷方式,打开安装目录下的puttygen.exe(或win+s输入puttygen进行搜索),运行密钥生成工具。

生成SSH密钥

点击界面中[generate] 按钮,鼠标放在进度条下方的空白区域,来回移动产生随机值用于生成密钥库,进度条完成密钥库生成。

密钥库中的公钥如下图所示,以ssh-rsa开始,以日期作为结束,在空白输入框输入私钥密码(自定义),密码用于防止私钥被意外窃取发现安全问题,密码项不建议为空。

填写完私钥密码,点击[Save private key]保存私钥,建议备份私钥。至此生成密钥告一段落,如果没有点击[Save public key]保存公钥,先不要关闭窗口,一会儿要用到生成的公钥。

为Linux SSH服务配置密钥

以CentOS 7操作系统为例:

SSH登录系统后,在当前用户的目录下,用mkdir命令生成 .ssh 目录(如果不存在),在.ssh目录下创建一个authorized_keys文件(如果文件不存在)。

打开 .ssh/authorized_keys文件,把之前生成的公钥复印粘贴到authorized_keys文件中(如果文件中已有其他公钥,新起一行进行追加)。

注意:公钥以ssh-rsa开头,日期结尾,如果复印粘贴不全或过多,会导致后续登录失败,公钥输入完成后保存并退出。

配置authorized_keys文件访问权限

配置.ssh目录和authorized_keys文件的权限,这一步至关重要,很多时候密钥登录配置不成功,大多源于权限问题,这里的权限并非越宽松越好,权限太大反而不被SSH服务认可。

chmod 600 .ssh

chmod 400  .ssh/authorized_keys

修改SSH服务配置文件

打开SSH服务配置文件/etc/ssh/sshd_config,修改StrictModes项的值为no,保存并退出,重启sshd服务 。

service sshd restart

配置SSH客户端

以putty登录工具为例:

如果安装puttygen了,安装成功后桌面上会有一个PuTTY_0.67.0.0.exe文件。打开putty,新建一个会话,输入ip,给会话取个名字,然后点击[Save]保存。

接着点击Connection节点上的Data项,找到[Auto-login username]项,输入登录Linux服务器时,所用的用户名,这里以root为例。

最后,指定登录时用的私钥,把之前生成好的私钥文件告诉putty,注意配置项所在的节点。

在配置完成后,回到顶部的Session节点,点session节点回到会话页,点击[Save]按钮,对刚才配置进行保存。

使用私钥登录系统

在会话列表中双击刚刚配置的会话,或选中一个会话,点击会话页下方的[open]按钮,开启与Linux服务器的SSH连接。

如果提示输入私钥密码,证明SSH密钥登录已配置成功,输入前面在puttygen界面,保存私钥时所填写的密码,不出意外应该登录系统了。

修改配置只允许密钥登录

接下来的工作视情况而定,如果希望系统不再接受密码方式的登录,通过修改SSH服务配置文件/etc/ssh/sshd_config,把配置文件中PasswordAuthentication项的值改为no,保存并退出,重启SSH服务 。

service sshd restart

 


本文标题:Linux服务器SSH密钥登录配置
转载请保留页面地址:https://xieyonghui.com/tech/ssh-puttygen_185.html
已有0人评论

评论专区