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