返回

在WSL中配置OpenSSH以连接到Windows本地主机

见解分享

在 WSL 中配置 OpenSSH 以连接到 Windows 主机

简介

Windows Subsystem for Linux (WSL) 允许开发人员在 Windows 系统上无缝运行 Linux 发行版。要从 WSL 访问 Windows 主机,可以通过 SSH 建立安全连接。本指南将逐步介绍如何在 WSL 中配置 OpenSSH,以便安全连接到本地 Windows 主机。

先决条件

  • 在 WSL 发行版中安装 OpenSSH
  • 在 Windows 主机上启用 SSH 服务
  • 建立 WSL 和 Windows 主机之间的网络连接

安装和配置 OpenSSH

在 WSL 中安装 OpenSSH

使用以下命令在 WSL 发行版中安装 OpenSSH:

sudo apt update
sudo apt install openssh-server

在 Windows 中启用 SSH 服务

在 Windows 主机上,前往“控制面板”>“程序”>“启用或关闭 Windows 功能”。找到“OpenSSH 服务器”,并选中该复选框以启用它。

配置 OpenSSH

在 WSL 中生成 SSH 密钥

使用以下命令在 WSL 中生成 SSH 密钥:

ssh-keygen -t rsa -b 4096

这将创建一个私钥(id_rsa)和一个公钥(id_rsa.pub)。

将公钥添加到 Windows 主机

使用以下命令将公钥添加到 Windows 主机:

cat ~/.ssh/id_rsa.pub | ssh-copy-id [Windows 用户名]@[Windows 主机 IP 地址]

系统将提示您输入 Windows 用户的密码。

建立 SSH 连接

使用以下命令从 WSL 连接到 Windows 主机:

ssh [Windows 用户名]@[Windows 主机 IP 地址]

系统将提示您输入 Windows 用户的密码。输入密码后,您将成功连接到 Windows 主机。

管理 SSH 连接

配置 SSH 代理

为了简化 SSH 连接管理,您可以配置 SSH 代理。这将允许您在不提示输入密码的情况下连接到 Windows 主机。

在 WSL 中,使用以下命令配置 SSH 代理:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa

配置 SSH 别名

为了方便起见,您可以为 SSH 连接配置别名。这将允许您使用更简洁的命令连接到 Windows 主机。

在 WSL 中,使用以下命令配置 SSH 别名:

echo "Host [别名]
HostName [Windows 主机 IP 地址]
User [Windows 用户名]
IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config

现在,您可以使用以下命令连接到 Windows 主机:

ssh [别名]

故障排除

如果您在配置或使用 OpenSSH 时遇到问题,请尝试以下故障排除步骤:

  • 检查防火墙是否阻止了 SSH 连接。
  • 确保 Windows 主机上的 SSH 服务正在运行。
  • 检查 WSL 和 Windows 主机之间的网络连接。
  • 尝试重新生成 SSH 密钥。
  • 联系 Windows 支持以获取进一步的帮助。

常见问题解答

  1. 如何检查 OpenSSH 是否已在 WSL 中安装?

    运行以下命令:

    ssh-keygen -v
    

    如果 OpenSSH 已安装,您将看到版本信息。

  2. 如何查看已安装的 SSH 密钥?

    运行以下命令:

    ls ~/.ssh/
    

    这将列出当前安装的 SSH 密钥。

  3. 如何重置 SSH 配置?

    删除以下目录:

    ~/.ssh
    

    然后重新运行本指南中的步骤。

  4. 如何配置 SSH 转发?

    在 SSH 配置文件中(通常位于 ~/.ssh/config)中,添加以下行:

    ForwardAgent yes
    

    这将允许您转发 SSH 代理连接。

  5. 如何关闭 SSH 服务?

    使用以下命令停止 SSH 服务:

    sudo service ssh stop