阿里云ECS服务器ssh配置

开始

今天使用了购买的阿里云ECS服务器,并配置了一些SSH,提升了操作的便捷性和安全性。

以下的配置过程都是基于阿里云ECS服务器(Ubuntu 24.04)的,其他服务器或系统操作过程类似。

SSH配置密钥对

使用 SSH 密钥对而不是密码登录,能显著提升系统的安全性,防止暴力破解、密码泄露以及中间人攻击等风险。同时,密钥对还便于自动化管理、批量配置和精细化权限控制。因此,SSH 密钥对已成为现代网络和服务器管理中的最佳实践。

此外,使用SSH密钥对可以在每次ssh远程连接时,省去输入密码的过程。

生成密钥对

(如果你的电脑上已有了密钥对(查看是否存在~/.ssh/目录),跳过该步骤)

在命令行中输入:

1
ssh-keygen

会出现交互提示,如下:

1
2
3
4
5
6
7
8
9
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): <== 密钥对存放位置,用默认地址,按 Enter
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): <== 输入密钥锁码(可选),或直接按 Enter 留空(建议)
Enter same passphrase again: <== 再输入一遍密钥锁码
Your identification has been saved in ~/.ssh/id_rsa. <== 生成的私钥地址
Your public key has been saved in ~/.ssh/id_rsa.pub. <== 生成的公钥地址
The key fingerprint is:
0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host

设置公钥(阿里云)

进入云服务器ECS控制台,左侧栏选择“网络与安全/密钥对”。然后创建密钥对,按下图填写,其中公钥内容在~/.ssh/id_rsa.pub里可以找到。

image-20241216234034450

到这里就算完成了,在你的本机输入以下命令看是否能用ssh无密码登陆。

1
ssh root@<你的服务器公网ip>

SSH公钥原理

SSH公钥登陆的原理图如下:

image-20241216234640002

解决SSH远程连接闲置时间过长而断线

进入服务器命令行,打开sshd配置文件:

1
sudo vim /etc/ssh/sshd_config

然后定位到下面两行:

1
2
#ClientAliveInterval 0
#ClientAliveCountMax 3

去掉注释,修改为下面这样:

1
2
ClientAliveInterval 30  // 客户端每隔多少秒向服务发送一个心跳数据
ClientAliveCountMax 86400 // 客户端多少秒没有请求交互,服务器自动断掉连接

然后重启服务(Ubuntu 24.04)

1
service ssh restart