20250608-在 Windows 上使用 PyCharm 通过 SSH 连接到远程 Ubuntu 机器的 Anaconda 环境

在 Windows 上使用 PyCharm 通过 SSH 连接到远程 Ubuntu 机器的 Anaconda 环境

1. 确保远程机器上的 SSH 服务已启动

在远程 Ubuntu 机器上,确保 SSH 服务已安装并启动:

bash 复制代码
sudo apt-get install openssh-server
sudo systemctl start ssh
sudo systemctl enable ssh

2. 在 Windows 上安装 OpenSSH 客户端

确保 Windows 上已安装 OpenSSH 客户端。可以通过以下命令在 PowerShell 中检查是否已安装,以管理员身份运行 PowerShell(按下 Win + X 键,然后选择 Windows Terminal (管理员)):

powershell 复制代码
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Client*'

如果未安装,可以使用以下命令安装:

powershell 复制代码
Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0

3. 在 PyCharm 中配置 SSH 连接

  1. 打开 PyCharm

    • 打开 PyCharm 并创建一个新的项目或打开现有项目。
  2. 配置 SSH 连接

    • 在 PyCharm 的菜单栏中,选择 File > Settings(或 PyCharm > Preferences,取决于你的操作系统)。
    • 在设置窗口中,选择 Project: 项目名称 > Project Interpreter
    • 点击右上角的齿轮图标,选择 Add...
    • 在弹出的窗口中,选择 Existing environment
    • 点击 SSH 选项卡。
    • 填写以下信息:
      • Host:远程机器的 IP 地址。
      • Port:SSH 服务的端口号(默认为 22)。
      • User:远程机器上的用户名。
      • Password:远程机器上的用户密码(如果使用密钥认证,可以跳过此步骤)。
      • Path to Python interpreter :远程机器上 Python 解释器的路径,例如 /home/你的用户名/anaconda3/envs/Py311/bin/python3.11
    • 点击 OK 完成配置。
  • 创建时可能会弹框报错:
    bash Path to Python interpreter:远程机器上 Python 解释器的路径,例如 /home/你的用户名/anaconda3/envs/Py311/bin/python。 Python 解释器进程以非零退出代码 126 退出 env: "/home/你的用户名/anaconda3/envs/Py311": 权限不够

  • 错误代码 126 通常表示权限问题,具体来说是权限不足导致无法执行指定的文件。以下是解决这个问题的步骤:

  1. 检查文件权限

    在远程机器上,检查 Python 解释器文件的权限:

    bash 复制代码
    ls -l /home/你的用户名/anaconda3/envs/Py311/bin/python3.11

    这将显示文件的权限信息。例如:

    bash 复制代码
    -rwxr-xr-x 1 你的用户名 你的用户名 日期 /home/你的用户名/anaconda3/envs/Py311/bin/python3.11

    如果权限不足,例如没有执行权限(x),你需要修改文件权限。

  2. 修改文件权限

    如果权限不足,可以使用 chmod 命令修改文件权限,确保当前用户有执行权限:

    bash 复制代码
    chmod +x /home/你的用户名/anaconda3/envs/Py311/bin/python3.11

    这将为当前用户添加执行权限。

注意事项

  • 防火墙设置:确保远程机器的防火墙允许来自你的 IP 地址的 SSH 连接。

  • SSH 配置文件 :如果需要修改 SSH 配置文件(如 sshd_config),可以在远程机器上编辑 /etc/ssh/sshd_config 文件,并重启 SSH 服务:

    bash 复制代码
    sudo systemctl restart ssh