这是我的场景:
~/.ssh/id_rsa.pub(来自 A)authorized_keys~/.ssh/id_rsa),因为它存在安全风险(密钥是个人的)。如何使用主机 A 中的密钥登录主机 C?这可能吗?我怕不是。
(与此问题类似但不同)
我需要的是一种在不接触 B 中的文件系统的情况下,即时(stdin 或类似)向 B 中的 ssh 跃点提供私钥的方法。这可能吗?
我正在尝试通过网关连接到 EC2 实例。
如果我连接到网关
local> ssh gateway
Run Code Online (Sandbox Code Playgroud)
然后我可以在没有密码的情况下连接到 EC2
gateway> ssh ec2 # works
Run Code Online (Sandbox Code Playgroud)
但是,尝试通过代理连接似乎需要身份文件。
Host gateway
HostName <gateway>
Host ec2
HostName ec2-<ec2>.compute.amazonaws.com
ProxyCommand ssh gateway -W %h:%p
local> ssh ec2
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)
我认为 ProxyCommand 基本上是将我登录到网关,然后登录到最终目的地。如果是这样,当网关设置为不需要公钥时,为什么它会要求我提供公钥?如何以与 ssh 进入网关然后 ssh 进入 ec2 相同的方式连接到 ec2 实例?
编辑:rsync 正常工作(不要求提供密钥文件)
rsync -pthrvz --rsync-path=/usr/bin/rsync --rsh='ssh gateway ssh' . ec2:/path
Run Code Online (Sandbox Code Playgroud)
ssh -v 输出 gateway> ssh ec2
gateway> ssh -v ec2
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for …Run Code Online (Sandbox Code Playgroud)