在 Windows 上使用 OpenSSH 开启 SSH 服务器
以Windows11为例,按照以下步骤启用 OpenSSH 服务器:
1. 检查并安装 OpenSSH 服务器
1.1. 按下 Windows + I,打开 设置。
1.2. 搜索 可选功能 > 添加可选功能。
1.3. 找到 OpenSSH 服务器,勾选并点击下一步安装。
2. 启用并启动 OpenSSH 服务器
-
打开 PowerShell 或 命令提示符(以管理员身份运行)。
-
输入以下命令来启动 OpenSSH 服务器:
Start-Service sshd
-
设置Openssh服务器每次开机时自动启动:
Set-Service -Name sshd -StartupType 'Automatic'
3. 测试 SSH 连接
使用 SSH 客户端(如 PowerShell、Putty)进行连接测试。确保知道 Windows 机器的 IP 地址:
(账号密码为Windows上的用户名和密码)
ssh your-username@your-ip-address
默认端口是 22,你也可以通过修改配置文件来更改端口。
4. 使用密钥连接SSH服务器
4.1 创建密钥对
在 Windows 或其他系统上,你可以使用 ssh-keygen
命令生成 SSH 密钥对。以下是具体步骤:
- 使用 PowerShell 或 命令提示符。输入以下命令来生成密钥对:
ssh-keygen
执行命令后,会依次出现以下提示:
- 指定保存路径:默认路径为 ~/.ssh/id_rsa,你可以按 Enter 使用默认路径,或者输入自定义路径。
Generating public/private rsa key pair.
Enter file in which to save the key (C:\Users\user-name/.ssh/id_rsa)
- 设置密码(可选):为私钥设置密码来增强安全性。如果不需要密码保护,直接按 Enter。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
- 生成成功:如果一切顺利,系统会输出生成密钥的路径:
Your identification has been saved in C:\Users\user-name/.ssh/id_rsa.
Your public key has been saved in C:\Users\user-name/.ssh/id_rsa.pub.
- 结果,生成的密钥对包括:
私钥:id_rsa(请妥善保管,不要与他人分享)
公钥:id_rsa.pub(可以上传到服务器)
4.2 复制公钥(id_rsa.pub)内容到C:\Users\user-name\.ssh\authorized_keys
文件中
如果没有authorized_keys文件则新建一个
5. 修改 OpenSSH 配置文件
- 配置文件路径在:
C:\ProgramData\ssh\sshd_config
。 - 打开并编辑
sshd_config
文件,根据需要进行调整。
# 修改这三条内容,确保没有被注释。使OpenSSH服务器强制使用密钥登录,禁止使用密码登录,
PubkeyAuthentication yes # 使用公钥
AuthorizedKeysFile .ssh/authorized_keys # 公钥位置
PasswordAuthentication no # 免密登录
注释掉以下2条
Match Group administrators
AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
# Match Group administrators:
# 这是一个条件匹配的配置,表示接下来的一些 SSH 服务器配置将仅应用于系统中属于 administrators 组的用户。也就是说,Match Group administrators 后面的配置只对系统管理员用户生效。
# 注释掉这条指令(即在前面加上 #)将禁用对管理员用户的特定配置匹配,意味着管理员用户将不再有单独的 SSH 规则,所有用户将使用全局的配置规则。
# AuthorizedKeysFile PROGRAMDATA/ssh/administrators_authorized_keys:
# 这条配置指定了管理员用户的公钥存储位置。当管理员通过 SSH 连接时,SSH 服务器会从该文件中查找公钥来验证用户身份。默认情况下,管理员的公钥会保存在 __PROGRAMDATA__/ssh/administrators_authorized_keys 这个文件中。
# 注释掉这条指令 将导致 SSH 服务器不再从这个特定的文件中查找管理员用户的公钥,而是回退到全局的 ~/.ssh/authorized_keys 文件中查找公钥。这意味着管理员用户和普通用户会共享相同的公钥文件查找路径。
-
保存更改后,重新启动 SSH 服务器:
Restart-Service sshd
完成这些步骤后,你的 Windows 机器即可作为 SSH 服务器使用,并且使用密钥免密登录,增加系统安全性。
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 程序员流年
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果