前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【教你搭建服务器系列】(8)使用密钥对登录服务器

【教你搭建服务器系列】(8)使用密钥对登录服务器

作者头像
HaC
发布2021-12-07 13:26:21
1.7K0
发布2021-12-07 13:26:21
举报
文章被收录于专栏:HaC的技术专栏

使用SSH登录服务器的方式有两种。

第一种是IP、密码登录

第二种是通过密钥对登录

这两种方法各有优缺点,使用 IP、密码登录是最常见的方式,但是这种登录方式不安全,假如你没有设置出入站规则、没有在后台设置允许的IP登录,入侵者就很可能会通过不断撞库入侵你的服务器。

密钥对相对来说更安全,因为私钥只有你自己知道,设置了秘钥对服务器就很难被入侵。

lastb命令列出登入系统失败的用户相关信息,可以知道服务器被暴力撞库的情况:

第一列:用户名 第二列:终端位置 第三列:登录ip或者内核 第四列:开始时间 第五列:结束时间(still login in 还未退出 down 直到正常关机 crash 直到强制关机) 第六列:持续时间

一、生成密钥对

1、进入 .ssh 目录

如果没有该目录,则可以新建。

2、执行生成命令

代码语言:javascript
复制
ssh-keygen -t rsa -b 4096

-b 参数,指定了长度,也可以不加-b参数,也可以为指定的用户生成密钥对,如果不指定默认为当前用户生成密钥对。

如:为用户HaC生成密钥对:

代码语言:javascript
复制
[root@VM-8-8-centos ~]# useradd HaC
[root@VM-8-8-centos ~]# su HaC
[HaC@VM-8-8-centos root]$ cd /home/HaC/
[HaC@VM-8-8-centos ~]$ ssh-keygen -t rsa -b 4096 -f HaC

3、按照指示输入

Enter file in which to save the key 是指定密钥对的存放目录,默认 /root/.ssh/id_rsa 目录,不填。按 Enter 下一步。

Enter passphrase (empty for no passphrase) 是 密钥对的密码,可不填。按 Enter 下一步。

代码语言:javascript
复制
[root@VM-8-8-centos ~]# cd /root/.ssh
[root@VM-8-8-centos .ssh]# ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jMMB7qtLgpUiXOxd4PizqeUiTo0sj8TGddA/EheDhAc root@VM-8-8-centos
The key's randomart image is:
+---[RSA 4096]----+
|   E=o.o         |
|  .o++. o        |
|   =o+.o         |
|. oo+.=+         |
|o.oo.*+oS        |
|*o+ ..=..        |
|+O...+           |
|=* o+            |
|o.=o..           |
+----[SHA256]-----+

4、查看密钥对

代码语言:javascript
复制
[root@VM-8-8-centos .ssh]# ls
id_rsa  id_rsa.pub

id_rsa.pub 表示公钥,以 ssh-rsa 开头 id_rsa是私钥

5、配置密钥对

创建一个 authorized_keys 文件,赋予 600权限,如果已经有了authorized_keys文件,则不需要执行这一步

代码语言:javascript
复制
[root@VM-8-8-centos .ssh]# touch authorized_keys
[root@VM-8-8-centos .ssh]# chmod 600 authorized_keys

执行以下的密钥追加工作:

代码语言:javascript
复制
[root@VM-8-8-centos .ssh]# cat id_rsa.pub >> authorized_keys

目的是把公钥写进 authorized_keys 文件。

> > 表示向文件最后追加 > 表示替覆盖文件内容

6、使用秘钥登录

我这里使用 MobaXterm 终端工具,登录。

把服务器的私钥保存到本地,然后新建连接的时候使用你刚刚保存的私钥。

即可顺利登录:

二、禁用密码登录

既然我们使用了密钥对登录,那么,密码就不需要使用了,为了被第三方侵入者暴力撞库,我们可以禁用密码登录。

如果你觉得你的密码很安全,或者设置了防火墙和安全组,可以忽略这一步。

1、修改sshd_config

代码语言:javascript
复制
 vim /etc/ssh/sshd_config

修改:

代码语言:javascript
复制
# 表示使用密钥对登录
PubkeyAuthentication yes
# 关闭密码登录
PasswordAuthentication no

重启sshd:

代码语言:javascript
复制
systemctl restart sshd

然后你再使用密码登录就告示无法登录了,而只能使用密钥对登录:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XY71eYa7-1622558550414)(https://cdn.jsdelivr.net/gh/DogerRain/image@main/img-20210401/image-20201228181635240.png)]

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/06/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、生成密钥对
    • 1、进入 .ssh 目录
      • 2、执行生成命令
        • 3、按照指示输入
          • 4、查看密钥对
            • 5、配置密钥对
              • 6、使用秘钥登录
              • 二、禁用密码登录
                • 1、修改sshd_config
                相关产品与服务
                云服务器
                云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
                领券
                问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档