本地Homestead+Vagrant环境下无法连接MySQL数据库:SSH权限拒绝(publickey,password)问题求助
解决Sequel Ace通过SSH隧道连接Homestead MySQL失败的问题
从你提供的SSH调试日志来看,问题核心出在SSH认证环节,主要有两个关键诱因:
问题1:Sequel Ace在错误路径寻找SSH私钥
日志里明确提示:
no such identity: /Users/nielsvroman/.keys/id_rsa: No such file or directory
你的Homestead配置里指定的密钥路径是~/.ssh/id_rsa(对应实际路径/Users/nielsvroman/.ssh/id_rsa),但Sequel Ace却默认在~/.keys/目录下查找密钥,路径不匹配直接导致密钥认证失败。
问题2:密码认证时无法分配终端(tty)
当密钥认证失败后,系统尝试密码登录时出现:
debug1: read_passphrase: can't open /dev/tty: Device not configured
这是因为Sequel Ace在当前环境下无法正确创建终端会话来接收密码输入,进而导致密码认证也宣告失败。
解决方案(优先推荐密钥登录,更稳定)
步骤1:确认本地SSH密钥的合法性
首先在本地终端执行以下命令,确保密钥权限符合SSH要求(私钥权限必须为600,所在目录权限为700):
chmod 700 ~/.ssh chmod 600 ~/.ssh/id_rsa
接着验证直接SSH登录Homestead是否正常:
ssh vagrant@192.168.56.56
如果能顺利登录,说明密钥本身没问题,接下来只需调整Sequel Ace的配置即可。
步骤2:修正Sequel Ace的连接配置
打开Sequel Ace新建连接,切换到SSH选项卡:
- SSH Host:
192.168.56.56(与Homestead.yaml里的IP保持一致) - SSH User:
vagrant(Homestead默认用户名) - SSH Key: 点击「Choose File」,手动选择本地的
~/.ssh/id_rsa文件(不要使用默认的~/.keys/路径) - SSH Password: 留空即可(依赖密钥完成认证)
再切换到MySQL选项卡:
- Host:
127.0.0.1(SSH隧道转发到虚拟机本地的MySQL服务) - Username:
homestead(Homestead默认MySQL用户名) - Password:
secret(Homestead默认MySQL密码) - Database:
volleyadmin(与Homestead.yaml里配置的数据库名一致) - Port:
3306
保存配置后尝试连接,应该就能成功建立SSH隧道并访问MySQL了。
备选方案:若坚持使用密码登录
如果一定要用密码认证,需要在Sequel Ace的SSH配置中添加强制分配终端的参数:
在SSH选项卡的「SSH Arguments」输入框中填写:
-t -t
该参数会强制SSH创建终端会话,解决can't open /dev/tty的问题,之后再输入SSH密码secret尝试连接即可。不过还是更推荐密钥登录,能避免这类终端兼容性问题。
内容的提问来源于stack exchange,提问作者nielsv
相关产品推荐
相关产品推荐

