VScode使用SSH连接远程服务器时“C:\WINDOWS\System32\cmd.exe”出错。

文章描述了在尝试使用SSH通过CMD连接远程服务器时遇到的问题,如CMD闪退。作者分析了问题可能源于CMD的使用,并提供了解决CMD闪退的方法。在修复CMD问题后,成功使用SSH连接,并通过ssh-keygen生成公钥和私钥以实现无密码登录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题:

        正常使用SSH连接远程服务器时,在确定使用的系统后,出现如下所示错误:

 二、问题分析:

  •    正常连接远程服务器时,一般会在cmd中使用SSH来进行连接测试——ssh 远程服务器用户@远程服务器ip地址 -p 开发的ssh端口 示例:ssh root@192.168.1.1;
  •   此时有一个误区,cmd和powershell是可以并行存在的,虽然微软在慢慢的替换cmd,但是还是可以使用,因此此处给我造成一个比较大的误区,以为cmd启动不了是正常;
  • 启动cmd时发现闪退,查看是否cmd.exe是否存在,并且启动cmd查看问题,解决方案

三、后续处理:

  • cmd正常后,在cmd中使用ssh连接,看是否可以正常连接远程服务器;
  • 正常使用后,使用ssh-keygen生成本机的公钥和私钥,可以不用每次都输入密码。具体方案
<think>我们正在解决用户的问题:使用VSCode通过SSH连接远程服务器(IP: 103.116.78.212) 根据用户提供的引用资料,我们总结出以下步骤和可能遇到的问题的解决方案。 步骤: 1. 确保远程服务器已安装并运行OpenSSH Server。 2. 在本地VSCode中安装Remote-SSH扩展。 3. 配置SSH连接(编辑~/.ssh/config文件)。 4. 连接服务器,可能会遇到各种错误,根据错误信息排查。 根据引用[5],如果远程服务器没有安装openssh-server,需要先安装: sudo apt update sudo apt install openssh-server 根据引用[2],如果连接时出现“Failed to parse remote port from server output”错误,可以尝试: - 杀死远程服务器上的vscode-server进程(通过VSCode命令:Remote-SSH: Kill VS Code Server on Host) - 删除远程服务器上的~/.vscode-server目录(或至少删除~/.vscode-server/extensions目录) - 清理缓存:/home/${user}/.cache/vscode-cpptools - 重新连接VSCode会自动重新安装vscode-server 根据引用[4],如果出现“Connection refused”错误,检查SSH服务是否运行,端口是否正确。 根据引用[3],如果是在Docker环境中,需要配置Docker内的SSH服务,并注意端口映射。 现在,我们为用户提供详细的连接步骤: 步骤1:在远程服务器上安装并启动SSH服务(如果尚未安装) - 对于Ubuntu/Debian系统: sudo apt update sudo apt install openssh-server sudo systemctl enable ssh sudo systemctl start ssh - 检查SSH服务状态:sudo systemctl status ssh 步骤2:确保防火墙允许SSH端口(默认为22) - 如果使用ufw:sudo ufw allow ssh - 如果使用iptables,请相应配置。 步骤3:在本地VSCode安装Remote-SSH扩展 - 打开VSCode,转到Extensions(Ctrl+Shift+X),搜索“Remote - SSH”,安装。 步骤4:配置SSH连接 - 打开命令面板(Ctrl+Shift+P),输入“Remote-SSH: Open SSH Configuration File”,选择用户目录下的.ssh/config文件(如没有可创建) - 添加以下内容(替换为实际信息): Host MyRemoteServer # 自定义别名 HostName 103.116.78.212 User your_username # 替换为远程服务器用户名 Port 22 # 如果修改了端口,请填写实际端口 如果使用密钥登录,添加: IdentityFile ~/.ssh/private_key # 私钥路径 步骤5:连接 - 在VSCode左下角点击绿色远程连接图标,或者打开命令面板输入“Remote-SSH: Connect to Host”,选择配置的Host(MyRemoteServer) - 输入密码(如果使用密钥且有密码,需要输入密钥密码) 步骤6:处理常见错误 - 如果连接失败,根据错误信息进行排查: 1. “Connection refused”:检查远程SSH服务是否运行,端口是否正确,防火墙设置。 2. “Permission denied”:检查用户名、密码是否正确,或者密钥是否正确且权限设置(本地私钥文件权限应为600)。 3. “Failed to parse remote port from server output”:按照引用[2]的方法,尝试杀死远程vscode-server并删除相关目录,然后重连。 高级提示:设置免密登录 - 在本地生成密钥对:ssh-keygen -t rsa - 将公钥上传到远程服务器:ssh-copy-id -i ~/.ssh/id_rsa.pub your_username@103.116.78.212 - 配置config文件时指定IdentityFile(如上) 如果问题仍然存在,请检查远程服务器的磁盘空间(df -h)和内存是否充足。 最后,生成相关问题:</think>### VSCode 连接远程服务器 `103.116.78.212` 的完整指南 #### 📌 核心步骤 1. **服务器端准备**(需在服务器执行): ```bash # 安装 SSH 服务(如未安装) sudo apt update sudo apt install openssh-server -y # 启动 SSH 服务 sudo systemctl enable ssh sudo systemctl start ssh # 检查服务状态(确认显示 "active (running)") sudo systemctl status ssh ``` 2. **本地 VSCode 配置**: - 安装扩展:**Remote - SSH**(微软官方插件) - 打开命令面板 `Ctrl+Shift+P` → 输入 **Remote-SSH: Open Configuration File** - 添加配置: ```ssh-config Host MyServer # 自定义别名(例如:MyServer) HostName 103.116.78.212 # 你的服务器IP User your_username # 服务器登录用户名 Port 22 # SSH端口(默认22) IdentityFile ~/.ssh/id_rsa # 密钥路径(可选) ``` 3. **连接服务器**: - 点击 VSCode 左下角 **><** 图标 → 选择 **Connect to Host...** - 选择配置的别名(如 `MyServer`) - 首次连接需验证主机密钥(输入 `yes`) - 输入服务器密码完成认证 #### ⚠️ 常见问题解决 1. **连接超时/拒绝**: - ✅ 检查服务器防火墙: ```bash sudo ufw allow 22 # 开放SSH端口 sudo ufw reload ``` - ✅ 确认服务器公网IP是否正确(`103.116.78.212`) 2. **认证失败**: - 🔑 配置免密登录(本地终端执行): ```bash ssh-copy-id your_username@103.116.78.212 ``` 3. **"Failed to parse remote port" 错误**[^2]: - 在 VSCode 命令面板执行: ``` Remote-SSH: Kill VS Code Server on Host ``` - 删除服务器端缓存: ```bash rm -rf ~/.vscode-server # 在服务器执行 ``` 4. **端口冲突**(如服务器已运行SSH): ```bash # 修改服务器SSH端口(例:2222) sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config sudo systemctl restart ssh ``` 本地配置需同步修改 `Port 2222` #### 🔧 高级配置 - **Docker 容器内开发**[^3]: ```dockerfile # Dockerfile 示例 RUN apt-get update && apt-get install -y openssh-server RUN echo "PermitRootLogin yes" >> /etc/ssh/sshd_config EXPOSE 22 ``` - **连接诊断**: - 本地终端测试连接: ```bash ssh -v your_username@103.116.78.212 ``` 观察 `debug1: Authentication succeeded` 是否出现 #### 💡 连接示意图 ``` 本地 VSCodeSSH 加密隧道 → 服务器(103.116.78.212) → 自动部署 VS Code Server ``` --- ### 相关问题 1. 如何解决 VSCode 连接时出现的 `Permission denied (publickey)` 错误? 2. 服务器磁盘空间不足导致 VS Code Server 安装失败如何处理? 3. 怎样在 Docker 容器内配置 SSHVSCode 远程连接? 4. 如何修改 SSH 默认端口以增强服务器安全性? 5. 免密登录配置成功后仍然需要输入密码的可能原因是什么? > 提示:连接失败时,先通过终端 `ssh` 命令测试基础连通性,再排查 VSCode 特定问题[^1][^2][^5]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值