如何仅通过账号密码实现SSH Git仓库的身份验证?
解决方案
临时解决方式(单次克隆)
直接在克隆命令中添加SSH参数,强制允许旧主机密钥类型并禁用公钥认证:
git clone -c core.sshCommand="ssh -o HostKeyAlgorithms=+ssh-rsa,ssh-dss -o PubkeyAuthentication=no" ssh://<username>@<server.com>/~<server_user>/repo/<project>
执行后会弹出密码输入提示,输入你的账号密码即可完成克隆。
永久配置方式(后续操作无需重复加参数)
- 创建或编辑
~/.ssh/config文件:nano ~/.ssh/config - 添加以下配置(替换占位符为实际信息):
Host server.com User <username> HostKeyAlgorithms +ssh-rsa,ssh-dss PubkeyAuthentication no - 保存文件后,修改文件权限确保安全:
chmod 600 ~/.ssh/config - 之后直接执行简化的克隆命令即可:
git clone ssh://server.com/~<server_user>/repo/<project>
关键参数说明
HostKeyAlgorithms=+ssh-rsa,ssh-dss:允许SSH客户端接受服务器提供的旧密钥类型,解决"no matching host key type found"的报错PubkeyAuthentication=no:禁用公钥认证方式,强制SSH使用密码登录,符合仅用账号密码连接的需求
内容的提问来源于stack exchange,提问作者bub1ick
相关产品推荐
相关产品推荐

