У меня есть экземпляр виртуальной машины Google Cloud под управлением ОС Ubuntu, и я установил там сервер mysql. Сервер запущен, и я могу проверить его статус по sudo service mysql status
Я изменил файл mysql my.cnf как,
[mysql]
bind-address=0.0.0.0
Я настроил брандмауэр своего экземпляра следующим образом:
IP Protocol
*******************************************
127.0.0.1/32 all
0.0.0.0/32 all
10.128.0.0/9 tcp, udp, icmp
0.0.0.0/0 tcp:22,3389,443,80 icmp
Нажмите здесь, чтобы увидеть скриншот
Теперь в настройках подключения Mysql я заполнил следующее:
Connection Method: Standard TCP/IP over SSH
Parameter:
SSH Hostname: <vm external ip>:22
SSH Username: <vm username>
SSH Key File: <vm private key file>
MySQL Hostname: 127.0.0.1
MySQL Server Port: 3306
Username: <mysql username>
Password: <mysql password>
Нажмите здесь, чтобы увидеть скриншот
But the test connection is giving the error,
Access denied for 'none'. Authentication that can continue: publickey
Нажмите здесь, чтобы увидеть скриншот
Теперь я создал пару открытый ключ-закрытый ключ с помощью puttygen и успешно установил соединение Winscp.
Вам необходимо включить переадресацию портов sshd на вашем ssh-сервере. Убедитесь, что у вас есть AllowTcpForwarding yes
в /etc/ssh/sshd_config
файл, и эта служба ssh была перезапущена. Вы можете проверить это с помощью:
OpenSSH: ssh -v -L 3306:localhost:3306 user@VM
PuTTY: plink -v -L 3306:localhost:3306 user@VM
И bind-address
должно быть localhost
если у вас есть веб-приложение на той же виртуальной машине.
Одна из проблем заключается в том, что вы настроили открытый ключ в настройках MySQL Workbench.
Вам необходимо использовать свой закрытый ключ в настройках MySQL Workbench, а затем установить соответствующий открытый ключ для удаленного пользователя хоста. .ssh/authorized_keys
файл.