vscode使用remote-ssh免密连接服务器

本文介绍了如何在VSCode中安装并配置remote-ssh插件,实现与服务器的SSH连接,并指导读者如何设置免密登录,包括生成密钥对、添加公钥到远程服务器和配置SSH客户端。

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

在这里插入图片描述

你还在使用XShellHyperFinalShell等等SSH客户端软件吗,作为前端的我们,一直在用的功能强大的开发工具vscode,早已实现SSH连接功能(借助官方提供的插件)。而且更加好用,可以直接打开服务器上的文件,直接在vscode中修改、保存。

按照下面的步骤安装配置,去发现新大陆吧!

安装remote-ssh插件

在这里插入图片描述

新建ssh连接

  1. 点击远程资源管理器、右上角切换到远程(隧道/ssh)、新建远程:
    在这里插入图片描述
  2. 在窗口上方弹出的命令框中输入:ssh name@ipname是你服务器的用户名,如果没有创建用户则填root,ip是你的服务器ip地址(例如:ssh root@192.168.1.1):
    在这里插入图片描述
  3. 回车后会弹出选择更新配置文件,点击第一个路径,会在本地电脑对应目录(/User/xxx/.ssh)下自动生成一个config文件:
<think>嗯,用户的问题是关于在VS Code的Remote-SSH中配置两个具有相同IP地址但不同端口的远程主机连接。首先,我需要回忆一下Remote-SSH的配置方式。通常,VS Code的SSH配置是在.ssh/config文件中,每个主机都有一个Host条目,里面指定HostName、User、Port等信息。 用户提到的是同一IP不同端口的情况,这时候如果直接用相同的HostName,可能会导致VS Code无法区分,因为它们IP相同,但端口不同。根据引用[2]中的情况,用户之前可能遇到了VS Code将不同端口的连接合并的问题,导致需要重新输入命令。所以需要找到正确的配置方法,让VS Code识别不同的端口作为不同的主机。 根据SSH的配置语法,每个Host块可以有不同的别名,即使HostName相同,只要Port不同,应该能区分开。例如,可以设置两个Host条目,分别指定不同的Port,并给它们不同的别名,比如host1和host2。这样在VS Code中选择不同的主机别名时,就会使用对应的端口连接。 接下来,我需要验证这种配置是否正确。在SSH的官方文档中,Host条目确实是独立的,不同的Host即使指向同一个HostName,只要其他参数不同,就会被视为不同的连接配置。因此,用户只需要在.ssh/config文件中分别设置两个Host,每个指定不同的Port,并且使用不同的别名即可。 另外,引用[4]提到了登录的设置,可能用户还需要配置SSH钥,避每次连接输入码。这部分可以在每个Host块中添加IdentityFile指向对应的私钥文件,或者在服务器上添加公钥,实现多台电脑的登录。 然后,用户可能还需要注意VS Code的远程资源管理器是否正确显示这两个主机。如果配置正确,应该能看到两个不同的主机别名,分别对应不同的端口。如果仍然有问题,可能需要检查配置文件是否有语法错误,或者重启VS Code重新加载配置。 总结下来,正确的步骤应该是编辑.ssh/config文件,添加两个Host条目,分别设置相同的HostName和不同的Port,然后使用不同的别名进行连接。同时,配置SSH钥以实现登录,确保连接过程顺畅。</think>### 逐步解答:配置同一IP不同端口的Remote-SSH连接 1. **修改SSH配置文件** 打开本地计算机的SSH配置文件 `~/.ssh/config`(Windows路径为 `C:\Users\用户名\.ssh\config`),添加两个独立的主机配置块,示例如下: ```config Host server-port22 # 自定义别名1,用于区分 HostName 192.168.1.100 # 公共IP地址 User username Port 22 # 第一个端口号 Host server-port2222 # 自定义别名2,避冲突 HostName 192.168.1.100 # 同一IP地址 User username Port 2222 # 第二个端口号 ``` 通过不同别名(如`server-port22`和`server-port2222`)和不同端口号实现区分[^2]。 2. **在VS Code中验证配置** - 打开VS Code的Remote-SSH扩展面板。 - 输入`ssh server-port22`或`ssh server-port2222`,选择对应的别名连接- 连接时会自动根据配置文件中的`Port`参数区分目标主机[^1]。 3. **配置SSH登录(可选)** 若需登录,需为每个连接配置独立的钥或共用同一钥: ```config Host server-port22 IdentityFile ~/.ssh/id_rsa_port22 # 指定钥路径 Host server-port2222 IdentityFile ~/.ssh/id_rsa_port2222 ``` 在服务器端将公钥添加到`~/.ssh/authorized_keys`中[^4]。 4. **解决VS Code无法区分的问题** -连接后出现配置合并(如显示同一IP但未区分端口),需检查配置文件语法(如缩进、参数正确性)。 - 重启VS Code或执行`Reload Window`命令强制刷新远程资源管理器。 ```config # 示例完整配置 Host dev-server-22 HostName 10.0.0.5 User admin Port 22 IdentityFile ~/.ssh/dev_key Host prod-server-2222 HostName 10.0.0.5 User admin Port 2222 IdentityFile ~/.ssh/prod_key ``` ### 注意事项 - **别名唯一性**:确保`Host`后的别名全局唯一,避覆盖。 - **端口映射穿透**:若通过内网穿透(如frp),需在穿透工具中正确映射端口到公网[^3]。 - **日志排查**:连接失败时,通过`Remote-SSH: Show Log`查看详细错误信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值