Spec-Zone.ru › MySQL Shell 9.2

4.3.7 Использование туннеля SSH

MySQL Shell поддерживает туннелирование SSH для подключения к экземплярам сервера MySQL. Туннель SSH позволяет незашифрованному трафику проходить по защищенному соединению и обеспечивает авторизованный удаленный доступ к серверам, защищенным от внешних подключений брандмауэром.

Использование команд AdminAPI не поддерживается при подключении из MySQL Shell через туннель SSH, за исключением команд для развертывания, запуска, остановки, завершения и удаления экземпляров песочницы (dba.deploySandboxInstance, dba.startSandboxInstance, dba.stopSandboxInstance, dba.killSandboxInstance и dba.deleteSandboxInstance). Команды для песочницы всегда выполняются локально для экземпляра MySQL Shell.

После создания туннель SSH может быть использован для подключений к тому же хосту от того же пользователя, подключающегося с того же удаленного экземпляра сервера. Функция MySQL Shell shell.listSshConnections() отображает текущие подключенные и активные туннели SSH из сессии MySQL Shell с URI сервера SSH и подключенного экземпляра сервера MySQL. Если вы укажете те же данные подключения SSH, MySQL Shell автоматически повторно использует существующий туннель.

Вы можете выбрать файл конфигурации SSH и файл идентификации (приватный ключ), используемые для подключения. При настройке туннеля SSH MySQL Shell выбирает файл конфигурации SSH в следующем порядке приоритетов:

  1. Файл конфигурации SSH, который вы указываете в качестве параметра подключения.

  2. Файл конфигурации SSH, который вы установили в качестве значения по умолчанию, используя параметр конфигурации MySQL Shell ssh.configFile. Инструкции по установке этого параметра см. в разделе 14.4, «Настройка параметров MySQL Shell».

  3. Стандартный файл конфигурации SSH ~/.ssh/config.

Файл известных хостов считывается из стандартного расположения (~/.ssh/known_hosts), если иное не задано в файле конфигурации SSH.

Для файла идентификации (приватного ключа) вы можете указать пользовательский файл с помощью параметра ssh-identity-file во время подключения. Нет возможности установить пользовательское значение по умолчанию для файла идентификации. Если вы не укажете его, библиотека SSH использует следующую последовательность попыток аутентификации до достижения успеха:

  1. Если используется агент SSH, аутентификация выполняется с помощью файлов идентификации, настроенных в нём, если они доступны.

  2. Если для целевого хоста в файле конфигурации SSH указан файл идентификации, аутентификация выполняется с помощью этого файла.

  3. Если ни один из этих вариантов недоступен или попытка аутентификации завершается неудачно, аутентификация выполняется с использованием стандартного файла приватного ключа в папке конфигурации SSH (~/.ssh/id_rsa).

Размер буфера по умолчанию для передачи данных через туннель SSH составляет 10240 байт. Вы можете изменить это, установив параметр конфигурации MySQL Shell ssh.bufferSize. Инструкции по установке этого параметра см. в разделе 14.4, «Настройка параметров MySQL Shell».

Туннелирование SSH доступно при использовании любого из методов подключения MySQL Shell — метода shell.connect(), параметров командной строки mysqlsh или команды MySQL Shell \connect.

shell.connect()

При использовании метода shell.connect() для подключения во время работы MySQL Shell вы можете указать URI для подключения к серверу SSH или использовать пары ключ-значение для данных подключения. Доступны следующие параметры:

  • ssh: URI для подключения к серверу SSH. Формат URI — [user@]host[:port].

  • uri: URI для экземпляра сервера MySQL, к которому необходимо получить доступ через туннель SSH. Формат URI — [scheme://] [user@]host:port. Не используйте базовые параметры подключения (scheme, user, host, port) для указания подключения к серверу MySQL для туннелирования SSH, используйте только этот параметр. Порт должен быть указан.

  • ssh-password: Пароль для подключения к серверу SSH.

  • ssh-config-file: Файл конфигурации SSH для подключения к серверу SSH.

  • ssh-identity-file: Файл идентификации для подключения к серверу SSH.

  • ssh-identity-pass: Парольная фраза для файла идентификации, указанного параметром ssh-identity-file.

Эти параметры также доступны при использовании метода shell.openSession(), который работает аналогично методу shell.connect(), но создаёт и возвращает объект session вместо его установки в качестве глобальной сессии MySQL Shell. Подробные инструкции по использованию этого метода подключения и других доступных параметров см. .

Параметры команды mysqlsh

При подключении с помощью параметров командной строки во время запуска MySQL вы можете указать URI для подключения к серверу SSH. Доступны следующие параметры:

  • --ssh: URI для подключения к серверу SSH. Формат URI — [user@]host[:port]. При использовании этого параметра порт подключения к экземпляру сервера MySQL необходимо указать в URI экземпляра сервера.

  • --ssh-config-file: Файл конфигурации SSH для подключения к серверу SSH. Если вы указываете этот параметр со значением пустой строкой, пользовательский файл конфигурации SSH, указанный параметром --ssh.configFile, игнорируется, и используется файл ~/.ssh/config.

  • --ssh-identity-file: Файл идентификации для подключения к серверу SSH.

Для подробных инструкций по использованию этого метода подключения и других доступных параметров см. раздел 4.3.1, «Подключение с помощью отдельных параметров».

Команда \connect MySQL Shell

При подключении с помощью команды \connect во время работы MySQL Shell вы можете указать URI для подключения к серверу SSH. Дополнительных параметров для подключения SSH нет, поэтому вы должны использовать файл идентификации по умолчанию ~/.ssh/id_rsa и стандартный файл конфигурации SSH, который может быть стандартным файлом ~/.ssh/config или пользовательским значением по умолчанию, настроенным с помощью параметра конфигурации MySQL Shell ssh.configFile (см. раздел 14.4, «Настройка параметров MySQL Shell»).

Для получения дополнительных параметров настройки вы можете создать туннель SSH с помощью метода shell.connect() или в командной строке во время запуска MySQL Shell, а затем повторно использовать его с помощью команды \connect. В сессии MySQL Shell можно просмотреть текущие подключенные туннели SSH с помощью команды shell.listSshConnections().

Хранилище секретов MySQL Shell может хранить пароли и парольные фразы для подключения к серверу SSH и для файла идентификации, чтобы автоматически получать их для будущих подключений. Если вы предоставите пароль или парольную фразу в параметрах подключения, он будет использоваться вместо любого пароля, хранящегося в хранилище секретов. Обратите внимание, что, хотя есть параметры, позволяющие это сделать, явное указание пароля в данных подключения небезопасно и не рекомендуется. MySQL Shell запрашивает пароль интерактивно, когда это требуется, как для подключения к серверу SSH, так и для файла идентификации. Например:

mysql-js> shell.connect({uri:"mysql://root:sandbox@192.0.2.3:3306",
        > ssh:"root@198.51.100.4:2222", "ssh-identity-file":"/home/hanna/.ssh/config_pw"})
Creating a Classic session to 'root@192.0.2.3:3306'
Opening SSH tunnel to 198.51.100.4:2222...
Please provide key passphrase for /home/hanna/.ssh/config_pw: ********
Save password for 'file:/home/hanna/.ssh/config_pw'?
[Y]es/[N]o/Ne[v]er (default No): y
Fetching schema names for autocompletion... Press ^C to stop.
Your MySQL connection id is 7869
Server version: 8.0.28 MySQL Community Server - GPL
No default schema selected; type \use <schema> to set one.
<ClassicSession:root@192.0.2.3:3306>

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/mysql-shell-connection-ssh.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API