SSH-туннель Navicat или MySQL Workbench с MFA
Можно ли вообще использовать Navicat или MySQL workbench (или любой другой инструмент) для подключения к Amazon RDS через переходник, например, хост-бастион?
Я могу сделать это, если вручную открою ssh-туннель в терминале следующим образом:
ssh -A <my_user>@<bastion_endpoint> -L 3306:<RDS_ENDPOINT>:3306
Затем подключитесь к
localhost:3306
из инструмента mysql это работает. Важно знать, что на бастионе MFA требуется авторизация.
Я даже не могу подключиться к своему бастионному ящику из
Navicat
используя те же учетные данные, что и в терминале / командной строке. Я получаю сообщение об ошибке:
Access denied for 'none'. Authentication that can continue: keyboard-interactive (11)
Я подошел к ящику-бастиону и снял
keyboard-interactive
из методов аутентификации, и это работает. Однако это явно нарушает MFA, который я использую, так что это не вариант.
Есть ли какие-либо другие настройки, которые мне нужно сделать на моем ящике-бастионе, чтобы это работало, или это просто невозможно?
1 ответ
Оказалось, что моя конфигурация sshd была в порядке, однако я вернулся и включил автоматическую отправку с помощью MFA.
Navicat
Если автоматическая отправка отключена для MFA, вам нужно выбрать (хотя здесь мы просто используем открытый ключ). В поле пароля он может быть пустым, если автоматическое нажатие включено, в противном случае введите номер вашего выбора, который вы хотите получать здесь (это правильно, это не обычный пароль, я знаю тупой). Затем просто используйте свой обычный закрытый ключ и пароль для закрытого ключа, и он должен подключиться нормально.
MySQL Workbench / Sequel Pro
У вас ДОЛЖЕН быть автоматический запуск или что-то подобное, чтобы работать с MFA. Если бы у меня не было включено автоматическое нажатие, он не смог бы подключиться. Опять воспользуюсь. Пароль к экземпляру пуст, тогда это просто обычный открытый ключ и пароль для вашего открытого ключа.
IntelliJ
Так лучше. Он будет работать с запросом при выборе MFA, если у вас не включена автоматическая отправка. В отличие от других, вы можете выбрать
Public Key
вариант вместо
Password and Public Key
и он должен подключиться и работать нормально.
- - - - - Ошибки с ротацией IP-адресов - - - - -
Теперь, к сожалению, вы получите раздражающую страшную ошибку «человек посередине» с ssh, если у вас есть постоянная конечная точка с чередующимися IP-адресами под ней (как это было у меня). ТОЛЬКО в этом случае
IntelliJ
предлагает флажок для игнорирования
StrictHostSSHKeyChecking
.
Поэтому, чтобы обойти это ТОЛЬКО для этой конкретной конечной точки, вы можете заставить ее игнорировать проверку ключа SSH. Для этого добавьте следующую запись в свой
~/.ssh/config
файл:
# changing IPs
Host my-custom-host.com
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
Вы можете использовать любое количество подстановочных знаков в
Host
раздел, который хорош. Так что настройте его под свои нужды. Теперь вы не будете проверять ключ ssh, но это лучше, чем ежедневно (или как часто меняется IP-адрес) удалять запись конечной точки в
~/.ssh/known_hosts
.
Надеюсь, это поможет кому-то избавиться от боли.