Featured image of post SSH配置简介

SSH配置简介

配置Linux,Windows,WSL系统的SSH连接

选择SSH应用程序

Visual Studio Code

这是目前为止最强大的SSH应用,只需下载VScode并安装Remote-ssh插件,写好配置文件后就能连接。

全程免费,而且附带端口转发、文件编辑、下载等功能,绝对好用!

Tabby

Tabby是一款现代的终端应用,界面简洁。

Tabby的Github仓库

ServerBox

ServerBox是一款国产的远程服务器监控和操作应用,支持Windows、Linux、Android、MacOS等操作系统。优点是可以监测服务器实时运行状态(包括CPU、内存、温度、网络、硬盘等)。

Serverbox的监测界面

注意,Serverbox自带的脚本只支持监控Linux系统的运行数据,对于WSL系统,只能监控部分数据。

ServerBox的Github仓库

以下是各ssh应用程序的功能比较:

应用 特点 平台
VScode 功能最强大 Windows/Linux/MacOs
Tabby 界面简洁美观 Windows/Linux/MacOS
Serverbox 可以监控服务端的运行 Windows/Android

配置 SSH

连接到远程主机的原理与连接MC服务器类似,关键在于确定远程主机的IP地址和端口。

Windows系统

  1. 安装 SSH 服务

首先在要连接的主机上打开设置,搜索“可选功能”,在“添加可选功能”中搜索“OpenSSH服务器”,下载该功能。

  1. 启动并配置 SSH 服务

管理员权限打开Powershell,输入:

1Start-Service sshd
2Set-Service -Name sshd -StartupType 'Automatic'

然后开放防火墙端口(默认22):

1New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
2
3# 其中'OpenSSH Server'是协议的名称,可自行修改
4# 这样默认同时开启IPV4和IPV6的端口,即“127.0.0.1:22”和“[0:0:0:0]:22”

还可以通过以下方法实现:

① 打开防火墙高级设置:控制面板 > Windows Defender 防火墙 > 高级设置(或win+R输入wf.msc)。
② 新建入站规则:右键“入站规则” > 新建规则。
③ 选择规则类型:选择“端口” > 下一步。
④ 指定端口和协议:协议类型:选择 TCP(或 UDP,视应用而定);特定本地端口:输入 22 > 下一步。
⑤ 选择操作:选择“允许连接” > 下一步。
⑥ 选择配置文件:默认全选(域、专用、公用)> 下一步。
⑦ 指定规则名称:如“允许 IPv6 22222 端口” > 完成。

  1. 注意事项

如果有时开放了防火墙但仍无法连接,可尝试重启电脑(我就是这样解决的……)

Linux系统

  1. 安装 OpenSSH Server

如果尚未安装,运行:

1sudo apt update
2sudo apt install openssh-server
  1. 启动 SSH 服务
1sudo systemctl start ssh
2sudo systemctl enable ssh  # 开机自启

确认服务正在运行:

1sudo systemctl status ssh

输出中应显示 active (running)。

  1. 配置防火墙 允许 SSH 默认端口(22):
1sudo ufw enable  # 如果防火墙未启用
2sudo ufw allow ssh
  1. 获取服务器的IP地址
1ip a  # 或 hostname -I

找到类似 192.168.x.x 的局域网 IP 或公网 IP(如果适用)。

WSL系统

  1. 安装 OpenSSH Server 打开 WSL 中的 Ubuntu 终端,执行:
1sudo apt update
2sudo apt install openssh-server
  1. 配置 SSH 编辑配置文件:
1sudo nano /etc/ssh/sshd_config

确保以下配置项存在且未被注释:

1...
2Port 22
3...
4PasswordAuthentication yes
5PermitRootLogin yes

如果要启用IPV6的SSH连接,还应该保持以下内容未被注释:

1Port 22
2AddressFamily any
3ListenAddress 0.0.0.0
4ListenAddress ::
  1. 启动 SSH 服务

在 WSL 中,不能使用 systemctl,请使用:

1sudo service ssh start

验证服务是否运行:

1sudo service ssh status
2# 或使用
3ps aux | grep sshd
  1. 使用WSL的注意事项
    ① 必须保证Windows防火墙的22端口已被放行;
    ② WSL系统是Windows的子系统,在Windows开机时,WSL的ssh功能默认并不能开启,此时需要将WSL的ssh注册为系统服务实现Windows开机时启用WSL的ssh功能。
下面给出使用任务计划程序(无需第三方程序)的方法:点击展开

打开任务计划程序 Win+Rtaskschd.msc

创建任务:

选项 操作
名称 StartWSL
触发器 选择「计算机启动时」
操作 新建 →程序/脚本:wsl.exe,参数:-d Ubuntu-22.04 -u root /usr/sbin/service ssh start(或 -d Ubuntu-22.04 true 单纯启动实例)
设置 勾选「允许任务按需运行」

保存时输入管理员密码。重启测试即可。

Termux

参见:Termux启动SSH功能

连接 SSH

  1. 在 Windows 本地测试:
1ssh 用户名@localhost
  1. 从局域网其他设备连接:
1ssh 用户名@<Windows主机IP>
  1. VScode的SSH配置文件:
1Host xxxx                       # Host的名称,可自定义
2    HostName xxx.xxx.xxx.xxx    # SSH服务端的IP地址
3    User xxxxx                  # 登录的用户名
4    Port xxxxx                  # SSH服务端的IP端口

注意:VScode的Host名会绑定远程主机的操作系统(Windows、Linux、MacOS)。如果使用同一个Host名连接不同操作系统的主机,需要在设置中修改,否则会报错。(就因为这个,让我花了近1小时)

修改方法:打开设置 → 搜索Remote Platform → 修改相应项的值

Licensed under CC BY-NC-SA 4.0
网站总访客数:Loading

使用 Hugo 构建
主题 StackJimmy 设计