![ssh:如何让我桌面上的 mySQL 服务器识别并批准 Mac 上的 SSH 密钥 id_rsa.pub?](https://linux22.com/image/1512545/ssh%EF%BC%9A%E5%A6%82%E4%BD%95%E8%AE%A9%E6%88%91%E6%A1%8C%E9%9D%A2%E4%B8%8A%E7%9A%84%20mySQL%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AF%86%E5%88%AB%E5%B9%B6%E6%89%B9%E5%87%86%20Mac%20%E4%B8%8A%E7%9A%84%20SSH%20%E5%AF%86%E9%92%A5%20id_rsa.pub%EF%BC%9F.png)
这些是我在自己的桌面上设置 mySQL 服务器所执行的步骤。
- 安装 Cygwin
- 安装了 openssh。然后
ssh-host-config
... - 然后我创建了一个通过“ssh 上的标准 TCP/IP”建立的新连接。
- 测试了连接。一切正常。
- 打开连接并授予访问权限
MacUser
...
现在我转到我的 Mac 笔记本电脑。我希望能够使用我的 MacOS 笔记本电脑远程连接到我台式机上的 mySQL 服务器。
于是我输入了SSH Hostname
和SSH Username
密码以及文件id_rsa.pub
。然后我测试了连接并收到以下错误消息。
Could not connect the SSH Tunnel.
Authentication error. Please check that your username and password are correct and try again.
Details (Original exception message):
Authentication failed, please check credentials.
Please refer to logs for details
问题:我确信我的 SSH 主机名和 SSH 用户名及密码是正确的。我唯一担心的是桌面上的 mySQL 服务器如何识别和批准id_rsa.pub
Mac 上的 SSH 密钥?我是否应该先在桌面上的 ssh 配置文件中施加一些规则?
如果这是一个幼稚的问题,请原谅我,但这是我第一次使用 ssh。
更新:
我已将错误日志附加在下面。
15:50:12 [INF][ SSH tunnel]: Existing SSH tunnel not found, opening new one
15:50:12 [INF][ SSH tunnel]: Opening SSH tunnel to <ip>:22
15:50:12 [ERR][sshtunnel.py:notify_exception_error:234]: Traceback (most recent call last):
File "/Applications/MySQLWorkbench.app/Contents/Resources/sshtunnel.py", line 302, in _connect_ssh
look_for_keys=has_key, allow_agent=has_key)
File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/client.py", line 367, in connect
look_for_keys, gss_auth, gss_kex, gss_deleg_creds, gss_host)
File "/Applications/MySQLWorkbench.app/Contents/Resources/libraries/paramiko/client.py", line 584, in _auth
raise saved_exception
AuthenticationException: Authentication failed.
15:50:13 [ERR][ SSH tunnel]: Authentication error opening SSH tunnel: Authentication error. Please check that your username and password are correct and try again.
Details (Original exception message):
Authentication failed, please check credentials.
Please refer to logs for details
答案1
由于 MySQL 默认不支持公钥认证,因此您将无法让它接受您的密钥。
您实际上尝试做的是访问在 Windows 主机上的 Cygwin 安装中安装的 openssh 服务器,然后 MySQL Workbench 使用该连接访问 MySQL 服务器。这意味着 MySQL 主机名仍然是本地主机。
因此,为了解决这个问题,您应该尝试与运行 Cygwin 的 PC 建立手动 ssh 连接。
如果您想使用公钥加密,请确保正确设置它,这可能涉及在 Mac 上生成密钥对并将其公共部分传输到 PC。有许多教程可教您如何正确设置它。由于您使用的不是普通的 Linux,您可能需要注意 Cygwin 的具体细节。