vscode连接ssh用户名相同 ip相同 但是端口号不同的情况
目前需求是同一个ip同一个用户名但是通过不同端口号去区分机器
1. 远程连接命令为
和本地ssh命令一致
ssh user@ip -p portID
2. 实际遇到的问题
2.1 本地终端可以正常区分端口机器,但是vscode没有。
【现象】不管怎么输入端口号,vscode使用连接的是其中一台服务器。
【原因】
这种情况一般出现在:vscode目前已经连接了相同ip的其中一台服务器。
vscode的ssh配置文件默认的Host是ip,当不主动修改的时候,vscode会认为已经连接上了这个ip的服务器。此种情况哪怕你打开配置文件,上面显示的是不同端口,仍然会只连接目前已经连接上的那个。
【解决办法】打开vscode的configure ssh host,默认路径是第一个。修改Host值,改成不一样、能区分服务器的值。
例如
修改完成后需要关闭vscode重新打开,选择对应的服务器(该名称和刚修改的Host值相同)
【仍然可能有的问题及其解决办法】
- 修改后还是没找到另外一个端口对应的服务器——查看已经登陆的服务器状态,如果在线,那么更改后不起作用,需要重新打开vscode,或者断开连接后建立新链接。
- 不要reload window,此时host 已经更改,reload是找不到之前的名字的,直接reload会一直告诉你链接不上需要重试。
如图,在线状态修改了config文件后显示的仍然是原来的ip,而不是Host,需要退出重新登录。
3. 总结
需要修改ssh配置文件的Host值,区分相同IP不同端口。
默认路径:
mac: User/你的名字/.ssh/config
win应该是在前面加上C盘。user大小写可能需要修改。