教你搭建服务器系列使用密钥对登录服务器

Posted 醋酸菌HaC

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了教你搭建服务器系列使用密钥对登录服务器相关的知识,希望对你有一定的参考价值。

我白嫖过的一些云厂商:

云服务器厂商学生身份新用户(非学生身份)
腾讯云学生特惠,1核2G5M宽带,仅需9元/1个月星星海SA2云服务器,1核2G首年99元(答主目前用的)
不知道还有没有券,可以试试
新客户无门槛代金券,价值高达2860元代金券
云产品限时秒杀,爆款1核2G云服务器,首年99元
阿里云精选云服务器1核2G 新人仅需87元/年
百度云1核2G 学生身份 9 元/1个月
华为云1核2G首年99元起,首月仅需9月【华为云-精选云服务器2折起】(偏贵)
七牛云对象存储服务每月10GB免费空间(用做云存储)

以上是答主我从学生时代到打工人薅过最便宜的云服务器,建议大家有学生身份或者新用户身份的都去试试。


本文的服务器版本是Centos 7.6

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

第一种是IP、密码登录

第二种是通过密钥对登录

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

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

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

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

一、生成密钥对

1、进入 .ssh 目录

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

2、执行生成命令

ssh-keygen -t rsa -b 4096

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

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

[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 下一步。

[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、查看密钥对

[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文件,则不需要执行这一步

[root@VM-8-8-centos .ssh]# touch authorized_keys
[root@VM-8-8-centos .ssh]# chmod 600 authorized_keys

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

[root@VM-8-8-centos .ssh]# cat id_rsa.pub >> authorized_keys

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

> > 表示向文件最后追加

> 表示替覆盖文件内容

6、使用秘钥登录

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

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

即可顺利登录:

二、禁用密码登录

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

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

1、修改sshd_config

 vim /etc/ssh/sshd_config

修改:

# 表示使用密钥对登录
PubkeyAuthentication yes
# 关闭密码登录
PasswordAuthentication no

重启sshd:

systemctl restart sshd

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

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

以上是关于教你搭建服务器系列使用密钥对登录服务器的主要内容,如果未能解决你的问题,请参考以下文章

教你搭建服务器系列让你的服务器更安全

教你搭建服务器系列让你的服务器更安全

教你搭建服务器系列一次服务器被黑的排查全过程

百晓生带你玩转linux系统服务搭建系列----SSH远程访问及控制

Linux系列—搭建:httpNFSDHCP服务的详细步骤

教你搭建服务器系列 (11)使用GitHub+Hexo搭建自己的网站博客