Назад | Перейти на главную страницу

Подключите сервер SSH Bastion к серверу БД

Я хочу подключиться к серверу баз данных Linux в частной подсети через Linux SSH Bastion Server, расположенный в общедоступной подсети. Еще хочу создать туннель на порт 3306.

Когда я пытаюсь создать SSH-соединение с сервера Bastion, я получаю сообщение «Permission Denied (publickey)». сообщение.

ssh -L 10.0.0.10:22:10.0.1.10:22 user@10.0.1.10

Вот результат отладки, где он не работает:

> debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /root/.ssh/identity
debug1: Trying private key: /root/.ssh/id_rsa
debug1: Trying private key: /root/.ssh/id_dsa
debug1: No more authentication methods to try.
Permission denied (publickey).

Правильный открытый ключ уже находится на сервере БД, поэтому я думаю, мне нужно где-то ввести закрытый ключ RSA. Где мне ввести закрытый ключ? Также есть ли какие-либо изменения конфигурации sshd, необходимые для создания туннеля на 3306?

client <-----> Bastion Server <-----> Database Server
                (10.0.1.10)             (10.0.0.10)

Итак, попробуйте это:

$ ssh -C -N -L 3306:10.0.0.10:3306 user@10.0.1.10

а затем вы можете подключиться к серверу БД, выполнив:

$ mysql -u <user> -p -h localhost

Где мне ввести закрытый ключ?

По умолчанию ~/.ssh/, но вы можете поместить куда угодно и указать с помощью -i вариант.

Также есть ли какие-либо изменения конфигурации sshd, необходимые для создания туннеля на 3306?

Убедитесь, что линия AllowTcpForwarding закомментирован или установлен на yes.

Основная причина, по-видимому, связана с ключами ssh на хосте бастиона. Если вы не входите на хост-бастион как root (а вы не должны этого делать), то, возможно, у пользователя, которого вы входите в систему, нет домашнего каталога, и он пытается использовать домашний каталог root? если ты являются входя на хост-бастион как root, вам, вероятно, не следует этого делать.

Вы используете ssh-агент на исходном хосте? Взгляните на / etc / ssh / sshd_config на хосте бастиона. Если AllowAgentForwarding - «нет», попробуйте изменить его на «да» и перезапустить sshd. Если вы не используете ssh-agent на исходном хосте, вы можете подумать об этом, поскольку он будет хранить ваш ключ и позволять пересылать его на удаленные ssh-соединения (например, на хост-бастион).

Другой вариант - включить аутентификацию по паролю на машине БД, чтобы она не выходила из строя, когда не может выполнить аутентификацию с открытым ключом. Проверьте / etc / ssh / sshd_config на машине БД для проверки подлинности пароля и убедитесь, что он либо не установлен (по умолчанию «да»), либо установлен на «да».

Когда вы запускаете ssh, вы можете передать ему несколько аргументов -v, чтобы повысить уровень отладки. Иногда это помогает показать, в чем именно заключается проблема.