【问题标题】:SSH issue when connection MySQL workbench to vagrant将 MySQL 工作台连接到 vagrant 时的 SSH 问题
【发布时间】:2015-06-06 01:57:26
【问题描述】:

我正在尝试使用 MySQL 工作台连接到我的流浪 MySQL 服务器。如图所示,它显示了一些错误。

工作台错误日志粘贴在下面。

17:34:50 [INF][     SSH tunnel]: Existing SSH tunnel not found, opening new one
17:34:50 [INF][     SSH tunnel]: Opening SSH tunnel to 127.0.0.1:2222
17:34:50 [ERR][   sshtunnel.py]: Traceback (most recent call last):
  File "/usr/share/mysql-workbench/sshtunnel.py", line 231, in _connect_ssh
    look_for_keys=has_key, allow_agent=has_key)
  File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 337, in connect
    self._auth(username, password, pkey, key_filenames, allow_agent, look_for_keys)
  File "/usr/lib/python2.7/dist-packages/paramiko/client.py", line 528, in _auth
    raise saved_exception
AuthenticationException: Authentication failed.
17:34:50 [ERR][     SSH tunnel]: Authentication error opening SSH tunnel: Authentication error. Please check that your username and password are correct and try again.

vagrant up 命令输出粘贴在下面

==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
    default: Adapter 2: hostonly
==> default: Forwarding ports...
    default: 22 => 6216 (adapter 1)
    default: 22 => 2222 (adapter 1)
==> default: Running 'pre-boot' VM customizations...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection timeout. Retrying...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
==> default: Configuring and enabling network interfaces...

vagrant ssh 命令在终端中运行良好。我在这里做错了什么?

【问题讨论】:

  • 您能否以 vagrant 用户的身份使用预期的密码直接 ssh 到 127.0.0.1:2222(如果该框按照 Vagrant 的建议设置,则应为 vagrant)?
  • @ydaetskcoR 不。它显示ssh: Could not resolve hostname 127.0.0.1:2222: Name or service not known。我添加了vagrant up 命令输出
  • 这些听起来像是不同的问题。您的问题中的错误是它连接到盒子但未能通过身份验证。您评论中的错误是没有连接到盒子。您确定虚拟机正在运行吗?
  • 是的。我可以通过浏览器访问 url,通过终端访问 ssh。
  • 正如@MartinKalcok 提到的,尝试使用 -p 选项将端口指定为 ssh 并检查是否可以连接到普通(非 Vagrant)ssh 终端

标签: mysql ssh vagrant mysql-workbench


【解决方案1】:

如果您运行vagrant ssh-config,它将显示它正在使用哪个键。它通常不使用.vagrant.d/insecure_private_key,而是使用项目目录中的一个键,例如.vagrant/machines/default/virtualbox/private_key

如果您在 MySQL 连接面板中指定该密钥,您应该能够登录而无需向 vm 添加另一个密钥。

【讨论】:

  • 你拯救了我的一天!谢谢
  • 根据其他示例,我使用了错误的密钥(.vagrant.d 中的 insecure_private_key)。这解决了问题,谢谢!
【解决方案2】:

经过一番谷歌搜索后,我通过将我的 ssh 公钥添加到 vagrant authorized_keys 文件来使其工作。下面的步骤。

  1. generate ssh keys 用于您的机器
  2. /home/{username}/.ssh/id_rsa.pub 文件中复制您的公钥
  3. 在终端打开vagrant ssh
  4. 使用某些编辑器编辑/home/vagrant/.ssh/authorized_keys(例如:nano /home/vagrant/.ssh/authorized_keys
  5. 将您的公钥粘贴到该文件的末尾并保存

完成!

【讨论】:

    【解决方案3】:

    关于您在 cmets 中提到的错误: 使用 ssh 时不要像这样指定端口

    ssh 127.0.0.1:2222
    

    你必须使用选项 -p

    ssh 127.0.0.1 -p 2222
    

    【讨论】:

    • 这应该是一条评论。没有答案。
    • 对不起,我的代表不够高,无法发表评论。只是想为您指明正确的方向。
    • 谢谢。反正我已经解决了这个问题。
    猜你喜欢
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2013-05-11
    • 1970-01-01
    • 2015-10-16
    • 2017-06-06
    相关资源
    最近更新 更多