我正在尝试遵循这一点指导设置到我的 rds 数据库的 ssh 隧道。
特别是这个命令:
ssh -N -L localPort:rdsHost:remotePort user@remoteHost -i ~/path/to/key
但是,我正在将 aws-elastic-beanstalk 与 eb-cli 一起使用。
eb cli 提供eb -ssh
通过 ssh 连接到实例的功能。
eb ssh -e '-N -L localPort:rdsHost:remotePort'
来自 eb 文档:
-e CUSTOM, --custom CUSTOM 指定要使用的 SSH 命令,而不是“ssh -i keyfile”。不包括远程用户和主机名。
然而,这只会产生以下输出并终止,而不是创建隧道。
INFO: Attempting to open port 22.
INFO: SSH port 22 open.
INFO: Running -N -L localPort:rdsHost:remotePort ec2-user@ip-of-instance
是否可以使用 eb-cli 创建隧道?
答案1
是的。
正如您所见,文档对此不是很清楚,但是当您使用-e
或--custom
标志时,您必须还-i
向底层命令提供标志ssh
,否则它将不会使用正确的键。
因此完整的命令看起来像这样(例如隧道端口 9229):
eb ssh --custom 'ssh -i ~/.ssh/keyfile.pem -L 9229:localhost:9229'