Linux SSH密钥/免密登录配置


Linux SSH密钥/免密码登录配置,需先生成SSH密钥,然后配置Linux SSH服务,最后配置SSH客户端密钥登录。

密钥生成工具

SSH密钥登录配置的第一步是生成密钥,密钥生成可以使用系统自带的ssh-keygen功能,亦或者puttygen工具,以puttygen工具为例。

下载puttygen并安装,如果安装完成桌面上没有快捷方式,打开安装目录下的puttygen.exe(或win+s搜索puttygen)。

生成SSH密钥

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

如下图所示,密钥库中的公钥以ssh-rsa标识开始,以日期结束。这段公钥文本稍后会被复制到Linux系统下的.ssh/authorized_keys文件中。所以,先点击[Save public key]保存公钥。

空白输入框填写私钥密码,以防止私钥被意外窃取后出现安全问题,所以密码项不建议为空。

点击[Save private key]保存私钥,建议备份私钥,以防止丢失后出现登录问题。

Linux SSH密钥/免密登录配置

以CentOS 7操作系统配置SSH密钥登录为例,先通过SSH登录系统后,在当前用户的目录下,用mkdir命令生成 .ssh 目录(如果不存在),在.ssh目录下创建一个authorized_keys文件(如果文件不存在)。

使用vim打开Linux系统下的.ssh/authorized_keys文件,把之前生成的公钥复印粘贴到authorized_keys文件中(如果文件中已有其他公钥,新起一行追加),公钥输入完成后保存并退出。

注意:公钥以ssh-rsa字符开始,以日期标识结束。如果复印粘贴不全或过多,会导致后续登录失败。

设置authorized_keys文件访问权限

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

chmod 600 .ssh

chmod 400  .ssh/authorized_keys

SSH服务配置

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

然后重启sshd服务 :

service sshd restart

SSH客户端配置

以ssh客户端putty工具为例配置为例,如果安装puttygen了,安装成功后桌面上会有一个PuTTY_0.67.0.0.exe文件。

打开putty,新建一个会话,并输入ip,给会话取个别名,然后点击[Save]保存。

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

最后,在Auth节点配置登录私钥,通过[浏览]选择之前生成的私钥文件。注意配置项所在的节点。

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

密钥/免钥登录系统

在会话列表中双击会话别名,打开SSH登录会话,连接Linux服务器。

如果提示输入私钥密码,证明SSH密钥登录已配置成功,输入私钥密码,不出意外应该登录系统了。

禁用SSH密码登录

禁止SSH密码登录视情况而定,如果不希望以密码方式登录系统,修改SSH服务配置文件/etc/ssh/sshd_config,修改PasswordAuthentication项为no,保存并退出,重启SSH服务 。

service sshd restart

注意:禁止SSH密码登录一定要在可以使用密钥登录的情况下进行修改,否则会导致无法登录系统。


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

评论专区