我正在嘗試遵循這個指導設定到我的 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
or--custom
標誌時,您必須也-i
向底層命令提供標誌ssh
,否則它將不會使用正確的密鑰。
因此完整的命令如下所示(例如到隧道連接埠 9229):
eb ssh --custom 'ssh -i ~/.ssh/keyfile.pem -L 9229:localhost:9229'