HelloCoder HelloCoder
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
随笔
关于作者
首页
《Java小白求职之路》
《小白学Java》
计算机毕设
  • 一些免费计算机资源
  • 脚手架工具
  • 《从0到1学习Java多线程》
  • 《从0到1搭建服务器》
随笔
关于作者
  • 《从0到1学习Java多线程》

  • 《从0到1搭建服务器》

    • (1)选择云服务器
    • (2)搭建服务器环境
    • (3)部署静态网站到Tomcat服务器
    • (4)部署静态网站到Nginx服务器
    • (5)部署JavaWeb项目到服务器
    • (6)如何判断服务器被入侵
    • (7)一次服务器被黑的排查全过程
    • (8)使用密钥对登录服务器
    • (9)让你的服务器更安全
    • (10)利用Docsify搭建个人笔记网站
    • (11)GitHub+Hexo搭建自己的网站、博客
    • (12)利用WordPress搭建个人网站
    • (13)利用vuepress搭建博客
  • RPC

  • Spring源码

  • 《Java日志框架》

  • 可观测和监控

  • 玩转IDEA

  • 专栏
  • 《从0到1搭建服务器》
#《从0到1搭建服务器》
码农阿雨
2022-07-14
目录

(8)使用密钥对登录服务器

本文的服务器版本是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 (opens new window) 终端工具,登录。

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

即可顺利登录:

# 二、禁用密码登录

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

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

# 1、修改sshd_config

 vim /etc/ssh/sshd_config

修改:

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

重启sshd:

systemctl restart sshd

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

密码无法登录

阅读全文
×

(为防止恶意爬虫)
扫码或搜索:HelloCoder
发送:290992
即可永久解锁本站全部文章

解锁
#《从0到1搭建服务器》
上次更新: 2025-02-21 06:04:57
最近更新
01
《LeetCode 101》
02-21
02
IDEA、Golang、Pycharm破解安装
02-21
03
《LeetCode CookBook》
02-21
更多文章>
Theme by Vdoing | Copyright © 2020-2025 码农阿雨
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式