Я пытаюсь следовать этомугиддля настройки SSH-туннеля к моей базе данных RDS.
В частности эта команда:
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'