linux初级_ssh远程连接

TJCcc 发布于 2025-11-04 26 次阅读


通过非标准端口进行 SSH 远程连接是一个非常常见且有效的安全措施,可以避免你的服务器被互联网上大量的自动化扫描脚本骚扰。

一、核心概念

SSH 连接的命令格式是:

ssh -p <端口号> <用户名>@<服务器IP或域名>

❗关键在于使用 -p (小写p) 参数来指定端口号。

二、服务端设置(在你要连接的机器上操作)

首先,你需要确保 SSH 服务端正在监听你指定的非标准端口。

1. 修改 SSH 服务端配置

配置文件通常位于 /etc/ssh/sshd_config。你需要使用 root 权限(如 sudo)来编辑它。

sudo nano /etc/ssh/sshd_config

找到关于 Port 的那一行。默认情况下,它可能是被注释掉的,并且默认使用 22 端口

# Port 22

取消注释,并添加你想要的端口号。 为了保险起见,建议保留 22 端口,并新增一个非标准端口。这样即使新端口配置失败,你还能通过默认的 22 端口连接上去修复。

Port 22
Port 2222 # 这是你新增的非标准端口,例如 2222

重要提示:

  • 端口号范围是 1-65535。
  • 1024 以下的端口通常需要 root 权限才能使用,建议选择 1024-65535 之间的端口,例如 2222352248213 等。
  • 避免使用已知的常见服务端口,如 80(HTTP), 443(HTTPS), 21(FTP) 等。

2. 重启 SSH 服务

修改配置后,必须重启 SSH 服务才能使更改生效。

  • 在 Ubuntu/Debian/CentOS 7+/Amazon Linux 2 等使用 systemd 的系统上:
sudo systemctl restart sshd

sudo systemctl restart ssh

3. 配置防火墙

这是非常关键的一步!如果你的服务器开启了防火墙(如 ufwfirewalldiptables),你必须放行你新设置的 SSH 端口。如果你不放行端口,此时你又手贱输入了exit或者点击断开连接,那么此时等着你的就是回滚了,如果没打快照那将是绝杀。

使用 ufw (常见于 Ubuntu/Debian):

sudo ufw allow 2222

使用 firewalld (常见于 CentOS/RHEL/Fedora):

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

4. (可选但推荐)测试并移除旧端口

先保持当前会话不要断开,然后开启新对话,尝试用新端口连接,如果可以连接再去编辑/etc/ssh/sshd-config,删除port 22,重启ssh服务,关闭端口。

这样可以最大限度降低你被锁在服务器外的风险。

这让我想起来我刚开始租服务器的时候,就是把自己所在了外面,傻乎乎的执行了sudo ufw start

二、客户端的连接

方法 1:命令行直接指定

ssh -p 2222 username@remote_server_ip

方法 2:使用 SSH 配置文件(推荐,更方便)

在你的本地电脑上,可以编辑 ~/.ssh/config 文件(如果不存在就创建一个),为你的服务器创建一个别名和预设配置。

编辑配置文件:

nano ~/.ssh/config

添加内容:

Host myserver # 给你服务器起一个易记的别名
HostName 203.0.113.10 # 服务器的真实 IP 或域名
Port 2222 # 指定的非标准端口
User john # 登录用户名

保存后,你只需要输入一个简单的命令就可以连接了,它会自动使用配置文件中指定的端口和用户:

ssh myserver