故障现象
日常操作系统是 Windows ,通常使用 Vagrant 来搭建本地开发环境。在某次重装系统后,像往常一样用 vagrant up --provision
命令成功地创建了开发环境,接下来用 vagrant ssh
登录系统时,竟然提示要求输入密码:
[email protected]'s password:
这是之前从未遇到过的问题。虽然可以用默认密码 vagrant
登录系统,但是总觉得不爽。一定要找到原因。
排查原因
用 vagrant ssh --debug
命令输出调试信息:
DEBUG safe_exec: Converted - Command: `"C:\\Windows\\System32\\OpenSSH\\/ssh.EXE"` Args: `["[email protected]", "-p", "2222", "-o", "LogLevel=FATAL", "-o", "Compression=yes", "-o", "DSAAuthentication=yes", "-o", "IdentitiesOnly=yes", "-o", "StrictHostKeyChecking=no", "-o", "UserKnownHostsFile=/dev/null", "-o", "PubkeyAcceptedKeyTypes=+ssh-rsa", "-o", "HostKeyAlgorithms=+ssh-rsa", "-i", "D:/myproject/devenv/.vagrant/machines/myproject/virtualbox/private_key", "-o", "ForwardAgent=yes"]`
[email protected]'s password:
发现 ssh 命令确实有使用 private_key 文件来进行验证身份。但是不知道为什么失败了,转而要求输入密码。
……