SSH 完整配置指南(Debian / Ubuntu)

4456 字
22 分钟
SSH 完整配置指南(Debian / Ubuntu)

本文档面向从零开始配置 SSH 的新手,涵盖服务器端创建用户、修改配置、密钥登录,以及客户端连接的全流程。 适用系统: Debian 11+ / Ubuntu 20.04+
适用平台: 腾讯云 CVM / 任何支持 SSH 的 Linux 服务器


目录#

  1. 前置检查:确认 SSH 服务状态
  2. 创建普通用户(禁止 root 登录)
  3. 修改 SSH 配置文件
  4. 防火墙与安全组
  5. 客户端连接测试
  6. 密钥登录(比密码更安全)
  7. 高级配置选项
  8. 故障排查
  9. Windows 安装 SSH 客户端
  10. 删除用户
  11. 完整命令速查表

1. 前置检查:确认 SSH 服务状态#

1.1 检查 SSH 是否运行#

Terminal window
sudo systemctl status ssh

输出解读:

● ssh.service - OpenSSH server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2026-07-13 02:55:39 UTC; 5min ago
字段含义
Active: active (running)✅ SSH 服务正在运行
Loaded: ... enabled✅ 开机自启动已启用
vendor preset: enabled系统默认就启用了

如果显示 inactive(未运行):

Terminal window
# 安装 OpenSSH 服务端(Debian 默认已装)
sudo apt update
sudo apt install openssh-server
# 启动并设置开机自启
sudo systemctl enable ssh --now
# 再次检查
sudo systemctl status ssh
TIP

-now--now 的简写,等价于先 enablestart,一步完成。


2. 创建普通用户(禁止 root 登录)#

2.1 为什么不能用 root 登录?#

  • root 是超级管理员,权限过大,误操作会直接毁掉系统
  • root 用户名是公开的,黑客扫描时第一个尝试的就是 root + 弱密码
  • 日志审计困难,所有 root 操作混在一起,无法区分是谁干的

2.2 创建用户#

Terminal window
sudo adduser qtfy

交互过程:

Adding user 'qtfy' ...
Adding new group 'qtfy' (1000) ...
Adding new user 'qtfy' (1000) with group 'qtfy' ...
Creating home directory '/home/qtfy' ...
Copying files from '/etc/skel' ...
New password: ← 输入密码(不显示字符)
Retype new password: ← 再次输入确认
passwd: password updated successfully
Changing the user information for qtfy
Full Name []: ← 按回车跳过
Room Number []: ← 按回车跳过
Work Phone []: ← 按回车跳过
Home Phone []: ← 按回车跳过
Other []: ← 按回车跳过
Is the information correct? [Y/n] ← 按回车确认(默认 Y)

命令详解:

命令作用useradd 的区别
adduser交互式创建用户,自动创建家目录、复制配置文件更友好,推荐新手使用
useradd底层命令,只创建用户条目,不创建家目录需要额外参数 -m 才创建家目录

adduser 自动做了什么:

  • 创建用户账户 /etc/passwd
  • 创建用户组 /etc/group
  • 创建家目录 /home/qtfy
  • /etc/skel 复制默认配置文件(如 .bashrc
  • 设置密码

2.3 赋予 sudo 权限#

Terminal window
sudo usermod -aG sudo qtfy

参数详解:

参数全称含义
-a--append追加到组,而不是覆盖原有组
-G--groups指定要加入的附加组
sudo组名Debian 中拥有 sudo 权限的默认组
WARNING

如果不加 -a-G 会覆盖用户的所有附加组,导致用户从其他组中被移除。

验证 sudo 权限:

Terminal window
su - qtfy # 切换到 qtfy 用户
sudo whoami # 测试 sudo
# 输出:root(表示 sudo 生效)
exit # 返回 root

3. 修改 SSH 配置文件#

3.1 打开配置文件#

Terminal window
sudo nano /etc/ssh/sshd_config

sshd_config 是 SSH 服务端(daemon)的配置文件。还有一个 ssh_config 是客户端配置,不要搞混。

3.2 关键配置项详解#

① Port —— 修改监听端口#

Terminal window
# 找到这行(默认被注释)
#Port 22
# 修改为(1024-65535 之间任意未占用端口)
Port 2222
选项说明
Port 22默认端口,全球扫描器都在扫这个端口
Port 2222常见替代端口,仍有一定扫描量
Port 49152动态/私有端口范围,扫描量更低
Port 22 + 密钥登录如果必须用 22,建议配合密钥 + fail2ban

查看端口是否被占用:sudo ss -tlnp | grep 2222

② PermitRootLogin —— 是否允许 root 登录#

Terminal window
# 找到这行
#PermitRootLogin prohibit-password
# 修改为
PermitRootLogin no
含义
yes允许 root 用密码或密钥登录(最危险)
no完全禁止 root 登录(推荐)
prohibit-password允许 root 用密钥登录,禁止密码登录
without-passwordprohibit-password(旧写法)
forced-commands-only只允许 root 执行预定义命令

③ PasswordAuthentication —— 是否允许密码登录#

Terminal window
PasswordAuthentication yes
阶段建议值原因
初始配置yes先确保能用密码连上,再配密钥
密钥配好后no关闭密码,只接受密钥登录

先配好密钥并测试成功,再改 no。否则可能把自己锁在服务器外。

④ PubkeyAuthentication —— 是否允许密钥登录#

Terminal window
PubkeyAuthentication yes

默认就是 yes,确保这行没有被注释或改成 no

⑤ AllowUsers —— 只允许特定用户登录(可选)#

Terminal window
AllowUsers qtfy

作用: 即使有人知道其他用户名(如 testadmin),也无法通过 SSH 登录。是最后一道防线。

多个用户:

Terminal window
AllowUsers qtfy alice bob

⑥ MaxAuthTries —— 最大尝试次数(防暴力破解)#

Terminal window
MaxAuthTries 3

连续输错 3 次密码后,当前连接会被断开。

⑦ ClientAliveInterval —— 保持连接(防超时断开)#

Terminal window
ClientAliveInterval 60
ClientAliveCountMax 3

每 60 秒发送一次心跳包,连续 3 次无响应才断开。适合长时间操作(如编译、传输大文件)。

3.3 配置示例(推荐的安全配置)#

Terminal window
# 基础设置
Port 2222
ListenAddress 0.0.0.0
# 认证设置
PermitRootLogin no
PasswordAuthentication yes # 初始阶段用 yes,密钥配好后改 no
PubkeyAuthentication yes
MaxAuthTries 3
# 可选:只允许特定用户
AllowUsers qtfy
# 会话保持
ClientAliveInterval 60
ClientAliveCountMax 3
# 禁用不安全的算法(可选,高级)
Ciphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com
MACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com
KexAlgorithms curve25519-sha256,curve25519-sha256@libssh.org

3.4 保存并重启 SSH#

Terminal window
# 检查配置文件语法是否正确(重要!)
sudo sshd -t
# 无输出 = 语法正确
# 重启 SSH 服务
sudo systemctl restart ssh
# 确认重启后状态正常
sudo systemctl status ssh
TIP

sshd -t 是测试模式,只检查语法不启动服务。如果配置有错,它会报错并拒绝重启,避免把自己锁在外面。


4. 防火墙与安全组#

4.1 服务器本地防火墙(ufw)#

Terminal window
# 安装 ufw(Debian 默认可能没装)
sudo apt install ufw
# 默认策略:拒绝所有入站,允许所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing
# 放行 SSH 端口(如果你改成了 2222)
sudo ufw allow 2222/tcp
# 如果还开了其他服务(如 HTTP)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable
# 查看状态
sudo ufw status verbose

ufw 常用命令:

命令作用
sudo ufw allow 2222/tcp放行 TCP 2222 端口
sudo ufw allow from 192.168.1.0/24 to any port 2222只允许特定网段访问
sudo ufw delete allow 2222/tcp删除规则
sudo ufw disable临时关闭防火墙
sudo ufw reset重置所有规则

4.2 腾讯云安全组(必须!)#

这是云服务商层面的防火墙,优先级高于 ufw。如果安全组没放行,ufw 放行了也连不上。

配置路径:

腾讯云控制台 → 云服务器 CVM → 实例详情 → 安全组 → 入站规则 → 添加规则

配置项
来源0.0.0.0/0(任何 IP)或你的公网 IP
协议端口自定义 TCP,端口 2222(或你设的端口)
策略允许
备注SSH 远程登录
IMPORTANT

建议:来源不要写 0.0.0.0/0,改成你当前网络的公网 IP(查 IP:ip.sb)。这样只有你能连,大幅降低被扫描风险。


5. 客户端连接测试#

5.1 Windows(PowerShell / CMD)#

Terminal window
# 基础连接
ssh -p 2222 qtfy@你的服务器公网IP
# 示例
ssh -p 2222 qtfy@123.456.78.90

首次连接提示:

The authenticity of host '[123.456.78.90]:2222' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入 yes 回车。这是把服务器的公钥指纹保存到本地 ~/.ssh/known_hosts

5.2 macOS / Linux#

Terminal window
ssh -p 2222 qtfy@你的服务器公网IP

5.3 常用 SSH 客户端参数#

参数作用示例
-p指定端口ssh -p 2222 user@ip
-i指定私钥文件ssh -i ~/.ssh/id_ed25519 user@ip
-v详细模式(排查问题)ssh -v user@ip
-vv更详细ssh -vv user@ip
-N不执行远程命令(只做端口转发)ssh -N -L ...
-L本地端口转发ssh -L 8080:localhost:80 user@ip

6. 密钥登录(比密码更安全)#

6.1 客户端生成密钥对#

Windows(PowerShell):

Terminal window
ssh-keygen -t ed25519 -C "qtfy@example.com"

macOS / Linux:

Terminal window
ssh-keygen -t ed25519 -C "qtfy@example.com"

交互过程:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/qtfy/.ssh/id_ed25519): ← 按回车用默认路径
Enter passphrase (empty for no passphrase): ← 可选:设置密码保护私钥
Enter same passphrase again:
Your identification has been saved in /home/qtfy/.ssh/id_ed25519
Your public key has been saved in /home/qtfy/.ssh/id_ed25519.pub

密钥类型选择:

类型安全性速度兼容性推荐度
ed25519⭐⭐⭐最快现代系统都支持✅ 首选
rsa⭐⭐⭐最广泛旧系统兼容用
ecdsa⭐⭐中等中等不推荐
dsa已废弃❌ 禁用

私钥密码(passphrase)的权衡:

  • 不设密码:方便,但私钥文件泄露 = 服务器直接沦陷
  • 设密码:每次使用私钥都要输密码,但更安全。可用 ssh-agent 缓存密码

6.2 把公钥传到服务器#

方法一:ssh-copy-id(推荐)

Terminal window
ssh-copy-id -p 2222 -i ~/.ssh/id_ed25519.pub qtfy@你的服务器公网IP

输入一次密码后,公钥自动复制到服务器的 ~/.ssh/authorized_keys

注意
  • 需要通过ssh连接后执行,可能需要sudo权限。

方法二:手动复制

Terminal window
# 本地电脑:复制公钥内容
cat ~/.ssh/id_ed25519.pub
# 复制输出的那一长串
# 服务器上(用密码登录后)
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

6.3 测试密钥登录#

Terminal window
ssh -p 2222 qtfy@你的服务器公网IP

如果不需要输密码直接登录成功,密钥配置完成。

6.4 关闭密码登录(密钥确认可用后再执行!)#

Terminal window
sudo nano /etc/ssh/sshd_config

修改:

Terminal window
PasswordAuthentication no
ChallengeResponseAuthentication no

重启:

Terminal window
sudo systemctl restart ssh
CAUTION

警告:确保密钥能正常使用再关闭密码!否则会被永久锁在服务器外,只能通过云服务商的 VNC 控制台救回。

6.5 使用 ssh-agent(避免每次输私钥密码)#

Terminal window
# 启动 ssh-agent
eval "$(ssh-agent -s)"
# 添加私钥(如果设了 passphrase,这里输一次)
ssh-add ~/.ssh/id_ed25519
# 现在连接不需要再输密码
ssh -p 2222 qtfy@你的服务器公网IP

Windows 自动启动 ssh-agent:

PowerShell 管理员运行:

Terminal window
# 确保 ssh-agent 服务自动启动
Get-Service ssh-agent | Set-Service -StartupType Automatic
Start-Service ssh-agent
ssh-add $env:USERPROFILE\.ssh\id_ed25519

7. 高级配置选项#

7.1 SSH 配置文件(客户端)#

在本地电脑创建 ~/.ssh/config(Windows 是 %USERPROFILE%\.ssh\config):

Host myserver
HostName 123.456.78.90
User qtfy
Port 2222
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 3

然后简化为:

Terminal window
ssh myserver

7.2 禁止空密码登录#

Terminal window
PermitEmptyPasswords no

7.3 设置登录欢迎信息#

Terminal window
sudo nano /etc/ssh/sshd_config

添加:

Terminal window
Banner /etc/ssh/banner

创建 banner 文件:

Terminal window
sudo nano /etc/ssh/banner
# 写入:
# =========================================
# Authorized access only!
# All activity may be monitored.
# =========================================

7.4 记录详细日志#

Terminal window
# 在 sshd_config 中
LogLevel VERBOSE

查看登录日志:

Terminal window
sudo tail -f /var/log/auth.log

7.5 使用 fail2ban(自动封禁暴力破解 IP)#

Terminal window
sudo apt install fail2ban
sudo systemctl enable fail2ban --now
# 查看被禁 IP
sudo fail2ban-client status sshd

8. 故障排查#

8.1 连接被拒绝(Connection refused)#

ssh: connect to host 123.456.78.90 port 2222: Connection refused

排查步骤:

  1. 检查 SSH 服务是否运行:sudo systemctl status ssh
  2. 检查端口是否监听:sudo ss -tlnp | grep ssh
  3. 检查配置文件语法:sudo sshd -t
  4. 检查 ufw 是否放行:sudo ufw status
  5. 检查腾讯云安全组!(最常见原因)

8.2 权限拒绝(Permission denied)#

Permission denied (publickey,password).

排查步骤:

  1. 用户名是否正确?(不是 root,是你创建的普通用户)
  2. 密码是否正确?
  3. 如果用了密钥:私钥路径是否正确?ssh -v 查看详细日志
  4. 服务器端 ~/.ssh/authorized_keys 权限是否为 600?
  5. 服务器端 ~/.ssh 目录权限是否为 700?

8.3 连接超时(Connection timed out)#

  1. 检查服务器是否开机
  2. 检查公网 IP 是否正确
  3. 检查安全组是否放行对应端口
  4. 检查本地网络是否允许出站到该端口(公司/学校网络可能限制)

8.4 被锁在服务器外(配置错误导致)#

救急方法:

  1. 登录腾讯云控制台
  2. 找到你的服务器 → 点击「登录」→ 使用 VNC/控制台登录
  3. 用 root 密码登录(控制台不受 SSH 配置限制)
  4. 修复 /etc/ssh/sshd_config
  5. sudo systemctl restart ssh

9. Windows 安装 SSH 客户端#

9.1 Windows 10 / 11(推荐:内置 OpenSSH)#

Windows 10(1809 及以上)和 Windows 11 已内置 OpenSSH 客户端,但默认可能未启用。

方法一:图形界面安装

  1. 打开「设置」→「应用」→「可选功能」
  2. 点击「添加功能」
  3. 搜索「OpenSSH 客户端」
  4. 勾选并点击「安装」
  5. 等待安装完成

方法二:PowerShell 命令安装(管理员)

Terminal window
# 检查是否已安装
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
# 如果 State 显示为 NotPresent,则执行安装
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# 安装完成后验证
ssh -V

验证安装成功:

Terminal window
ssh -V
# 应输出类似:OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2

9.2 Windows 7 / 8 / 旧版 Windows 10#

这些系统没有内置 OpenSSH,可使用以下替代方案:

方案一:Git for Windows(推荐,自带 Git Bash 和 ssh)

  1. 访问 https://git-scm.com/download/win
  2. 下载并安装 Git for Windows
  3. 安装过程中保持默认选项即可
  4. 安装完成后,右键桌面选择「Git Bash Here」
  5. 在 Git Bash 中输入:ssh -V

方案二:PuTTY(经典 SSH 客户端)

  1. 访问 PuTTY 官网
  2. 下载 putty-64bit-0.xx-installer.msi
  3. 安装后打开 PuTTY
  4. 在 Host Name 输入服务器 IP
  5. 在 Port 输入 2222(或你设置的端口)
  6. Connection type 选择 SSH
  7. 点击 Open 连接

PuTTY 使用密钥的方法:

  1. 打开 PuTTYgen(随 PuTTY 安装)
  2. 点击 Generate 生成密钥对
  3. 保存私钥(.ppk 文件)
  4. 将公钥内容复制到服务器的 ~/.ssh/authorized_keys
  5. 在 PuTTY 中 → Connection → SSH → Auth → Private key file
  6. 选择你的 .ppk 私钥文件

方案三:MobaXterm(功能强大的终端工具)

  1. 访问 MobaXterm 官网
  2. 下载免费版(Home Edition)
  3. 安装后打开,点击 Session → SSH
  4. 输入 Remote host 和 Port
  5. 点击 OK 连接

9.3 Windows 上使用 SSH 的注意事项#

  • Windows 的 SSH 配置文件路径:%USERPROFILE%\.ssh\config(例如 C:\Users\你的用户名\.ssh\config
  • 首次连接时的 known_hosts 保存在:%USERPROFILE%\.ssh\known_hosts
  • 如果提示 “WARNING: UNPROTECTED PRIVATE KEY FILE”,需要右键私钥文件 → 属性 → 安全 → 高级 → 禁用继承 → 删除所有用户,然后只添加当前用户并赋予完全控制权限
  • PowerShell 中使用 ssh 时,参数与 Linux/macOS 完全一致

10. 删除用户#

10.1 为什么需要删除用户?#

  • 员工离职,需要清理其服务器账户
  • 测试账号不再需要
  • 发现异常账户,需要立即禁用或删除
  • 系统维护,清理无用账户减少攻击面

10.2 查看系统中所有用户#

Terminal window
# 查看所有普通用户(UID >= 1000)
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
# 查看所有用户及其 UID、GID、家目录
cat /etc/passwd
# 查看当前在线用户
who
w
# 查看用户最近登录记录
last

10.3 删除用户(保留家目录)#

Terminal window
# 使用 deluser(Debian/Ubuntu 推荐,更友好)
sudo deluser qtfy
# 或使用 userdel(通用命令)
sudo userdel qtfy

效果: 删除用户账户和组,但保留 /home/qtfy 目录

10.4 删除用户及其家目录#

Terminal window
# deluser 加 --remove-home 参数
sudo deluser --remove-home qtfy
# userdel 加 -r 参数
sudo userdel -r qtfy

效果: 删除用户账户、组、家目录 /home/qtfy,以及邮件池

10.5 彻底清理用户所有痕迹#

Terminal window
# 1. 先强制终止该用户的所有进程
sudo pkill -u qtfy
sudo killall -u qtfy
# 2. 删除用户及其家目录
sudo deluser --remove-home qtfy
# 3. 手动检查并删除其他相关文件(如有)
sudo rm -rf /var/spool/mail/qtfy # 邮件池(deluser --remove-home 已处理)
sudo rm -rf /var/www/html/qtfy # 如有该用户的网站目录
sudo rm -rf /tmp/qtfy* # 临时文件
# 4. 从 sudo 权限中移除(如之前加入过)
sudo gpasswd -d qtfy sudo
# 5. 检查 crontab 任务
sudo crontab -u qtfy -l # 查看该用户的定时任务
sudo crontab -u qtfy -r # 删除该用户的定时任务

10.6 临时禁用用户(不解删除)#

Terminal window
# 方法一:锁定密码(用户无法登录,但数据保留)
sudo passwd -l qtfy
# 解锁
sudo passwd -u qtfy
# 方法二:设置账户过期日期为昨天(立即失效)
sudo usermod --expiredate 1 qtfy
# 恢复账户
sudo usermod --expiredate "" qtfy
# 方法三:将用户的 shell 改为 nologin(无法登录但数据保留)
sudo usermod -s /usr/sbin/nologin qtfy
# 恢复(假设原 shell 是 bash)
sudo usermod -s /bin/bash qtfy

10.7 删除用户时的注意事项#

WARNING
  • 永远不要删除正在使用的用户! 确保该用户没有正在运行的进程:ps -u qtfy;确保该用户没有打开的文件:lsof -u qtfy
  • 删除前备份重要数据! 如果用户家目录有重要文件,先备份:sudo tar czvf /backup/qtfy_backup.tar.gz /home/qtfy
  • 检查该用户是否拥有系统服务! 某些服务可能以该用户运行,删除前需确认:sudo systemctl list-units --type=service | grep qtfy
  • 不要删除系统内置用户! UID < 1000 的用户通常是系统账户(如 root, www-data, mysql),除非明确知道用途,否则不要删除

11. 完整命令速查表#

服务器端#

Terminal window
# 检查 SSH 状态
sudo systemctl status ssh
# 创建用户
sudo adduser qtfy
sudo usermod -aG sudo qtfy
# 编辑 SSH 配置
sudo nano /etc/ssh/sshd_config
# 关键配置项
Port 2222
PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes
AllowUsers qtfy
# 测试配置语法
sudo sshd -t
# 重启 SSH
sudo systemctl restart ssh
# 防火墙
sudo ufw allow 2222/tcp
sudo ufw enable
sudo ufw status
# 查看登录日志
sudo tail -f /var/log/auth.log
# 查看所有用户
awk -F: '$3 >= 1000 {print $1}' /etc/passwd
# 删除用户(保留家目录)
sudo deluser qtfy
# 删除用户及家目录
sudo deluser --remove-home qtfy
# 锁定用户
sudo passwd -l qtfy
# 强制终止用户进程
sudo pkill -u qtfy

客户端#

Terminal window
# 生成密钥
ssh-keygen -t ed25519 -C "qtfy@example.com"
# 复制公钥到服务器
ssh-copy-id -p 2222 qtfy@IP
# 连接
ssh -p 2222 qtfy@IP
# 详细模式(排错)
ssh -v -p 2222 qtfy@IP
# 使用配置文件后简化连接
ssh myserver

Windows 安装 SSH#

Terminal window
# 检查 OpenSSH 客户端是否安装
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'
# 安装 OpenSSH 客户端(PowerShell 管理员)
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
# 验证
ssh -V

文档版本: 2026-07-30
适用系统: Debian 11+ / Ubuntu 20.04+
适用平台: 腾讯云 CVM / 任何支持 SSH 的 Linux 服务器


本地阅读版下载

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
SSH 完整配置指南(Debian / Ubuntu)
https://blog.qtfyu.top/posts/ssh-complete-guide/
作者
倾听风雨
发布于
2026-07-30
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
倾听风雨
你好,我是倾听风雨,很高兴你能来到我的小家。
公告
欢迎来到我的博客!这是我的个人博客。
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
最新动态
站点统计
文章
11
分类
5
标签
46
总字数
14,588
运行时长
0
最后活动
0 天前
站点信息
构建平台
Local
博客版本
Firefly v6.14.5
文章许可
CC BY-NC-SA 4.0
天气预报

文章目录