我想将我公司的服务器设置为所有客户服务器的网关。这样与我一起工作的人就可以简单地“代理通过”,而无需在他们的机器上设置 SSH 密钥。即
[My local box] -> [Our Company Server (with SSH keys)] -> [Client's server]
到目前为止,我的 .ssh/config 中有这个
Host client-server
User myclient
ProxyCommand ssh -o Compression=no gateway netcat -w 3 %h %p
Compression yes
host gateway
HostName company-server
User me
Compression yes
但是这仍然要求输入 myclient@client-server 的密码。我希望它在网关上使用 ssh 密钥。有什么方法可以实现吗?
答案1
好吧,您可以直接从.ssh/authorized_keys
文件启动另一个 ssh 会话:
command="/usr/bin/ssh -i ~/.ssh/id_ecdsa_<user> <server>",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ecdsa-sha2-nistp256 <key-data>
您仍然需要创建本地密钥文件并将其添加到目标用户/服务器.ssh/authorized_keys
。