关注VPS服务器
相关知识分享

Xshell 用 SSH 密钥登录服务器的配置过程

我们使用 Linux 服务器不管做网站、项目、服务都需要一个安全性的概念,而默认是使用密码来登录的,普通的项目也就够用了。不过现在网络上鱼龙混杂,各路黑客无时无刻不在撸服务器,用各种软件扫描网络上的弱口令、端口等,为了提高 Linux 服务器的安全我们有必要在 SSH 登录界面设置密钥,提高破解难度,也就相对提高了服务器安全性。

一般我们用 SSH 软件登录服务器的时候都是用 root 账号和密码进行连接,其实这样是不安全的,使用 SSH key 和密码同时登录,这样才不会被轻易破解,也就提高了服务器 SSH 登录安全性。本文我们介绍 SSH key 密钥登录 Linux 服务器的配置过程,平时多使用 Xshell SSH 登录,相对来说它的操作界面更友好一些。

一、生成密钥

1、点击 Xshell 的工具-新建用户密钥生成向导,开始生成密钥。

2、弹出页面的密钥类型和密钥长度默认不要修改,点击下一步,看到程序生成 2048 位 RSA 密钥,点击下一步,输入密钥名称和登录密码。密钥名称随便起一个,密码是用来和密钥一起双重加密的,哪怕密钥被盗了,没有密码还是无法 SSH 登陆到服务器上。


3、点击下一步,把密钥另存为文件保存到本地电脑。这个是公钥。

另外在 Xshell 的工具>>用户密钥管理者里面能够看到对应的私钥,私钥最好导出另存到本地电脑和邮箱中,这点很重要。

2018 年 6 月 12 日补充:很多朋友看了文章后对公钥私钥有点迷糊,解释一下:公钥(Public Key Files)是以.pub 扩展名的文件,私钥 PEM(OpenSSH2)Private Keys 没有扩展名。因为密钥格式有很多种,所以本段内容仅针对本文操作过程解释的。
二、上传公钥到 VPS 服务器

1、建立文件夹和文件。创建一个.ssh 目录,这个目录具有隐藏属性。命令如下:   上传密钥文件到服务器。.ssh 目录在 lnmp1.4 中默认存在,且是隐藏属性,路径在/root/.ssh

cd /root/.ssh

用 sftp 软件连接到 VPS 服务器上, 把上面保存在本地电脑的公钥重命名为 authorized_keys,上传到.ssh 目录中,覆盖掉默认文件。

2、设置权限。命令如下:

chmod 700 .ssh

chmod 600 .ssh/authorized_keys

3、编辑 sshd_config 配置文件。命令如下:

vi /etc/ssh/sshd_config

去掉#RSAAuthentication yes    #PubkeyAuthentication yes    #AuthorizedKeysFile .ssh/authorized_keys 前面的#,含义分别是开启 RSA 密钥验证,公钥验证功能,设置公钥验证文件的路径。

把 PasswordAuthentication yes 替换为 PasswordAuthentication no,禁止使用密码登录。

改完后如下图所示就对了。

4、重启 sshd 服务。命令如下:

service sshd restart

5、用密钥连接 VPS 服务器

打开 Xshell 进入连接>>用户身份验证,选择 Public Key,用户密钥选择已经建立好的私钥,输入上面你自己设置的私钥密码。点击连接就可以实现密钥登陆 VPS 服务器了。

为了验证密钥是否生效,接下来我把登陆方法改成 Password 再试,就无法登陆并跳转到密钥登陆界面,说明这时候原来的密码登陆已经失效了,再输入密钥的密码登陆成功。

老魏在配置密钥过程中遇到了“所选的用户密钥未在远程主机上注册”的情况导致密钥登陆失败,是因为一开始用命令创建 authorized_keys 并保存密钥,网络上很多文章都是用这个方法,但在我这里就不好使。后来改用本地 SFTP 上传密钥的方式解决了这个问题。别人的东西不一定适合你的具体情况,老魏写的教程是亲自测试一下才知道是怎么回事,才能发表出来给大家参考。

最后总结:

1、为了提高网站、项目、服务器的安全性可以考虑使用密钥登陆方法,也可以不设置密钥密码,这时候只用密钥就可以登录服务器了(用密码是双重加密,即使别人搞到了密钥也无法登陆)。

2、私钥一定要另存到本地电脑和邮箱中,因为换一台电脑没有私钥(或者私钥丢失)就无法 SSH 登陆服务器了。

3、SSH 密钥登陆服务器的方法确实能够提高 SSH 连接的安全性,建议大家考虑一下这个方法。

赞(0) 打赏
允许转载,保留出处:魏艾斯博客 » Xshell 用 SSH 密钥登录服务器的配置过程
分享到: 更多 (0)

评论 2

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #-19

    这种文章很基础但是很实用,特别是第一次接触的博主站长必学知识

    boke112导航7个月前 (06-05)回复
    • 是的很多人只用了密码来做防御,理论上穷举就可以破解(值不值得是另外一码事),所以一定要用密钥来彻底加密,保证SSH链接的安全。

      魏艾斯博客7个月前 (06-05)回复

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏