如何配置PuTTY Agent限制VSCode远程SSH转发对特定IP的密钥认证?
解决方案
直接修改远程工作区的SSH配置文件,针对被测设备的IP/主机名单独设置认证规则,无需改动任何脚本:
- 登录到VSCode的远程工作区,打开终端,编辑
~/.ssh/config文件:nano ~/.ssh/config - 在文件末尾添加针对被测设备的配置块:
- 单个设备IP的情况:
Host 192.168.1.100 # 替换为你的被测设备实际IP PubkeyAuthentication no PasswordAuthentication yes - 同网段批量设备的情况,用通配符匹配:
Host 192.168.1.* # 匹配该网段下所有被测设备 PubkeyAuthentication no PasswordAuthentication yes - 脚本中使用主机名的情况,替换为对应主机名:
Host test-device-01 # 替换为被测设备的主机名 PubkeyAuthentication no PasswordAuthentication yes
- 单个设备IP的情况:
- 保存文件后,修改文件权限(SSH要求配置文件必须为600权限,否则会被忽略):
chmod 600 ~/.ssh/config
设置完成后,所有脚本里连接被测设备的ssh命令会自动应用这些规则,不再尝试转发的PuTTY Agent密钥,直接使用密码认证;而连接GitHub的请求不受影响,依然通过SSH Agent转发使用本地密钥正常工作。
此前修改本地配置无效的原因:本地SSH配置仅控制本地到远程工作区的连接,远程工作区到被测设备的连接规则,由远程工作区的SSH配置文件决定,因此必须修改远程端的配置。
内容的提问来源于stack exchange,提问作者apfreelance
相关产品推荐
相关产品推荐

