Git Bash无法执行git push命令,测试SSH连接提示Shell access disabled求助
ssh测试返回"You can use git to connect to Bitbucket. Shell access is disabled"说明你的SSH密钥已经被Bitbucket识别,核心问题出在仓库权限、远程URL配置或密钥关联细节上,按以下步骤排查:
检查远程仓库URL格式
执行git remote -v查看当前远程地址,如果是HTTPS开头的链接,会导致用密码认证而非SSH密钥,改成SSH格式即可:git remote set-url origin git@bitbucket.org:<你的Bitbucket用户名>/<仓库名>.git替换成自己的用户名和仓库名后,再尝试推送。
确认SSH公钥已关联到Bitbucket账号
打开本地~/.ssh/id_rsa.pub文件(如果用了其他密钥文件名就对应修改),复制里面的全部内容。登录Bitbucket进入个人设置的「SSH keys」页面,检查该公钥是否已添加,没有的话粘贴进去保存。验证账号对目标仓库的推送权限
进入Bitbucket的目标仓库页面,查看「Permissions」设置,确认你的账号拥有Write权限。没有的话联系仓库管理员分配权限。多SSH密钥场景下配置专属规则
如果本地同时用多个平台的SSH密钥(比如GitHub、GitLab),需要在~/.ssh/config文件里添加Bitbucket的专属配置,指定对应的密钥:Host bitbucket.org HostName bitbucket.org User git IdentityFile ~/.ssh/你的Bitbucket密钥文件名保存后重新执行
ssh -T git@bitbucket.org确认,再尝试推送。清除Git的旧凭证缓存
如果之前用过HTTPS方式推送,Git可能缓存了无效的凭证,执行以下命令清除:# Windows Git Bash环境 git credential-manager uninstall # 通用环境 git config --global --unset credential.helper
内容的提问来源于stack exchange,提问作者Aditha Dinuja Serasinghe
相关产品推荐
相关产品推荐

