如何通过VS Code Remote Tunnels实现SSH-Agent密钥转发?
实现Remote Tunnels的SSH密钥转发
可以通过以下两种方式实现类似SSH-Agent转发的功能,无需在远程服务器永久存储私钥:
方法1:借助ssh-agent自动转发(VS Code Remote Tunnels场景)
- 先确保本地
ssh-agent已启动并加载了私钥:# 启动ssh-agent(未运行时执行) eval "$(ssh-agent -s)" # 添加本地私钥 ssh-add ~/.ssh/id_rsa - 连接Remote Tunnel时开启代理转发:
命令行方式直接指定参数:
或者在VS Code设置里找到code tunnel --forward ssh-agentremote.forwardAgent,将其设为true,后续每次连接Tunnel都会自动转发本地ssh-agent。
方法2:手动转发ssh-agent套接字(通用反向隧道场景)
- 先查看本地
ssh-agent的套接字路径:echo $SSH_AUTH_SOCK - 建立反向隧道时,把本地套接字转发到远程服务器的临时路径:
ssh -R /tmp/remote_ssh_auth_sock:$SSH_AUTH_SOCK user@remote-server - 在远程服务器上设置环境变量指向转发后的套接字:
之后在远程服务器上通过export SSH_AUTH_SOCK=/tmp/remote_ssh_auth_sockssh连接其他机器时,会自动调用本地ssh-agent完成密钥验证,全程不会在远程存储私钥。
内容的提问来源于stack exchange,提问作者a06e
相关产品推荐
相关产品推荐

