我在其他线程中找不到我的具体案例。
基本上我有我的 PC (ubuntu)、一个代理 (Debian) 和一个目标 (Debian)。我想通过代理从 PC 到目标进行代理跳转。从代理到目标以及从 PC 到代理的身份验证使用公钥身份验证,每台机器都有自己的密钥对。
PC中的privkey与proxy中的PC pubkey相匹配,它们在默认目录中。所以,我只是运行ssh user@proxy inPC,它可以很好地连接到代理。在代理中,我必须指定ssh -i mypubkey user@targetserver连接正常(它不是默认密钥)。
现在,在 PC 上,我不知道如何运行一个命令并最终进入目标,因为我必须在代理中指定私钥。我试过:
ssh -J user@proxy user@target
ssh -Ao ProxyCommand="ssh -W %h:%p user@proxy" user@target
Run Code Online (Sandbox Code Playgroud)
但它给了我错误权限被拒绝(公钥)。
在代理服务器我试图添加IdentityFile指令中~/.ssh/config和/etc/ssh/ssh_config,但显然当我打电话从PC作为主机跳代理,它不需额外花费从这些文件中的配置。
如果我将私钥从代理带到 PC 并指定-i例如,它可以工作(那将是ssh -i mypubkey -J user@proxy user@target)。所以我的问题是:是否可以将私钥保留在代理中并在 PC 中引用它,这样我就不必将其移动到 PC 上?