无法在github上推送代码?
我已成功将一个应用程序代码推送到 github 上。 我已经设置了 ssh 密钥并将其添加到 github。
但后来我开始开发另一个应用程序,并尝试使用以下方法将其推送到 github 上:
git remote add github [email protected]:user_name/demo_app.git
git push -u github master
然后我收到以下错误:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
我还尝试更改远程 Git 存储库的名称,但这也不起作用。
我尝试 $ssh -v [email protected] 来获取更多信息,这这就是我得到的。
-bash: cd: ../.ssh: No such file or directory
abhimanyu@sourcebits-Ubuntu:~/Aptana_Studio_3_Workspace/demo_app$ cd ~/.ssh
abhimanyu@sourcebits-Ubuntu:~/.ssh$ cd ~
abhimanyu@sourcebits-Ubuntu:~$ ssh -v [email protected]
OpenSSH_5.5p1 Debian-4ubuntu4, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: Connection established.
debug1: identity file /home/abhimanyu/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/abhimanyu/.ssh/id_rsa-cert type -1
debug1: identity file /home/abhimanyu/.ssh/id_dsa type -1
debug1: identity file /home/abhimanyu/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian- 5github2
debug1: match: OpenSSH_5.1p1 Debian-5github2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/abhimanyu/.ssh/known_hosts:9
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/abhimanyu/.ssh/id_rsa
debug1: Remote: Forced command: gerve abhimanyu86
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Remote: Forced command: gerve abhimanyu86
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_IN
PTY allocation request failed on channel 0
Hi user_name! You've successfully authenticated, but GitHub does not provide shell access.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to github.com closed.
Transferred: sent 2648, received 2904 bytes, in 0.5 seconds
Bytes per second: sent 5858.0, received 6424.3
debug1: Exit status 1
当我设置 ssh 密钥时,系统要求我输入密码,但我没有将其留空。
任何建议将不胜感激。
I have successfully pushed one app code onto github.
I had set up the ssh key and added it to github.
But then I started working on another app and tried to push it onto github using:
git remote add github [email protected]:user_name/demo_app.git
git push -u github master
Then I got the following error:
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
I have also tried changing the name of the remote Git repository but that didn't work too.
I tried $ssh -v [email protected] to get more information and this is what i got.
-bash: cd: ../.ssh: No such file or directory
abhimanyu@sourcebits-Ubuntu:~/Aptana_Studio_3_Workspace/demo_app$ cd ~/.ssh
abhimanyu@sourcebits-Ubuntu:~/.ssh$ cd ~
abhimanyu@sourcebits-Ubuntu:~$ ssh -v [email protected]
OpenSSH_5.5p1 Debian-4ubuntu4, OpenSSL 0.9.8o 01 Jun 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to github.com [207.97.227.239] port 22.
debug1: Connection established.
debug1: identity file /home/abhimanyu/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/abhimanyu/.ssh/id_rsa-cert type -1
debug1: identity file /home/abhimanyu/.ssh/id_dsa type -1
debug1: identity file /home/abhimanyu/.ssh/id_dsa-cert type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.1p1 Debian- 5github2
debug1: match: OpenSSH_5.1p1 Debian-5github2 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.5p1 Debian-4ubuntu4
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'github.com' is known and matches the RSA host key.
debug1: Found key in /home/abhimanyu/.ssh/known_hosts:9
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/abhimanyu/.ssh/id_rsa
debug1: Remote: Forced command: gerve abhimanyu86
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Server accepts key: pkalg ssh-rsa blen 279
debug1: Remote: Forced command: gerve abhimanyu86
debug1: Remote: Port forwarding disabled.
debug1: Remote: X11 forwarding disabled.
debug1: Remote: Agent forwarding disabled.
debug1: Remote: Pty allocation disabled.
debug1: Authentication succeeded (publickey).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_IN
PTY allocation request failed on channel 0
Hi user_name! You've successfully authenticated, but GitHub does not provide shell access.
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to github.com closed.
Transferred: sent 2648, received 2904 bytes, in 0.5 seconds
Bytes per second: sent 5858.0, received 6424.3
debug1: Exit status 1
While i was setting the ssh key I was asked for a passphrase and I didnt leave it blank.
Any suggestion would be appreciated.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
出现此问题的原因有几个:
There are a few reasons why you can get this issue:
我认为问题出在这里:
这应该
是
[email protected]< /a>:...
应该是[电子邮件受保护]:...
试试这个:
I think the problem is here:
This should be
That is
[email protected]:...
should be[email protected]:...
Try this:
您可以尝试在 git 配置上手动替换它:
$ vi (或任何其他文本编辑器).git/config
将 url 替换为:
url = [电子邮件受保护]:用户名/reponame.git
You can try to replace it manually on the git config:
$ vi (or any other text editor) .git/config
Replace the url by:
url = [email protected]:username/reponame.git
您似乎正在尝试推送到不属于您的存储库。要推送到另一个用户的存储库,您需要在 GitHub 网站上分叉它。这将使您的帐户能够访问该存储库上的分支。
确保在本地存储库上创建匹配的分支,然后从该分支进行推送。为了推送到“master”分支,您需要被添加为协作者或发出拉取请求,以便所有者可以将您的工作合并到 master 分支。
It looks like you are trying to push to a repository that you do not own. To push to another user's repository, you need to fork it on the GitHub website. This will give your account access to a branch on that repository.
Make sure to create a matching branch on your local repository and then push from that branch. In order to push to the 'master' branch, you either need to be added as a collaborator or make a pull request so that the owner can merge your work to the master branch.
我曾经遇到过同样的问题
然后我将远程 URL 更改为使用这样的 https
并且它工作正常。
I once has the same problem with
Then I change the remote URL to use https like this
And it works correctly.
如果您不拥有该存储库,请确保您是贡献者。让管理员在设置下添加您。
If you do not own the repository, make sure that you are a contributor. Have the admin add you under settings.
我在使用 bitbucket 时遇到了这个问题,
可能会帮助其他人知道:
我发现最适合我的解决方案是将推送分解为更小的块。从提交中删除大屏幕截图图像文件(10mb+)
安全性最终不是问题 更多关于 bin 文件的限制
I had this problem with bitbucket,
Might help others to know:
I found the solution that worked best for me was breaking up the push into smaller chunks. Removing the large screenshot image files (10mb+) from the commits
Security was not the issue in the end more about limits of bin files
只需更改您的互联网连接即可,因为它适用于我。
我的笔记本电脑已连接 BSNL wifi,但当我将网络更改为手机的互联网热点时。它对我来说效果很好。
希望它也适合你。
Just change your internet connection as it worked with me.
My Laptop was connected with the BSNL wifi but when I changed my network to my phone's internet hotspot. It worked fine for me.
Hope it works for you as well.
要检查您是否对 GitHub 上的存储库具有写入权限,请按照以下步骤操作:
导航到存储库:转至相关存储库的主页。 URL 应类似于:
https://github.com/username/repository-name
。检查“分叉”按钮:如果您在存储库页面的右上角看到标有“分叉”的按钮,则意味着您可以选择分叉存储库,并且通过扩展,您拥有存储库的读取权限。这是一个很好的指标,表明您至少对存储库具有一定级别的访问权限。
检查存储库设置:如果您想确定自己的访问级别,可以尝试访问存储库设置。单击存储库页面右侧的“设置”选项卡(“见解”和“安全性”旁边)。如果您有写入权限,您应该能够访问设置页面。
尝试创建分支:检查写入访问权限的另一种方法是尝试在存储库中创建新分支。在主存储库页面上,单击分支下拉列表(通常设置为“main”或“master”)并输入新的分支名称。如果您有写入权限,GitHub 将允许您创建新分支。
查找协作者状态:如果您是存储库的协作者,则意味着您具有写入权限。您可以通过转到“设置”选项卡,然后选择“管理访问”或“协作者”(取决于 GitHub 界面版本)来进行检查。
检查问题/PR 创建权限:如果您可以在存储库中创建新问题或拉取请求,则表明您至少拥有存储库的写入权限。
请记住,写访问权限使您能够进行更改、创建分支、创建拉取请求以及将提交推送到存储库。如果您没有写入权限,您仍然可以通过分叉存储库并使用建议的更改创建拉取请求来建议更改。然后,存储库所有者或维护人员可以查看并合并您的更改(如果他们认为合适)。
To check if you have write access to a repository on GitHub, follow these steps:
Navigate to the Repository: Go to the main page of the repository in question. The URL should look something like:
https://github.com/username/repository-name
.Check for "Fork" Button: If you see a button labeled "Fork" at the top right corner of the repository page, it means you have the option to fork the repository, and by extension, you have read access to the repository. This is a good indicator that you have at least some level of access to the repository.
Check Repository Settings: If you want to be certain about your access level, you can try to access the repository settings. Click on the "Settings" tab on the right side of the repository page (next to "Insights" and "Security"). If you have write access, you should be able to access the settings page.
Attempt to Create a Branch: Another way to check for write access is to try creating a new branch in the repository. On the main repository page, click on the branch dropdown (usually set to "main" or "master") and type in a new branch name. If you have write access, GitHub will allow you to create a new branch.
Look for Collaborator Status: If you are a collaborator on the repository, it means you have write access. You can check this by going to the "Settings" tab, then selecting "Manage Access" or "Collaborators" (depending on the GitHub interface version).
Check for Issue/PR Creation Permission: If you can create new issues or pull requests in the repository, it indicates you have at least write access to the repository.
Remember that write access grants you the ability to make changes, create branches, create pull requests, and push commits to the repository. If you don't have write access, you can still suggest changes by forking the repository and creating a pull request with your proposed changes. The repository owner or maintainers can then review and merge your changes if they find them appropriate.