在我的服务器中,我使用ssh-keygen创建了ssh密钥,设置了密码,其他的都是默认的。文件成功地创建在/home/user/. ssh/中。
把公钥加到我的GitLab账户上了。很好。
Then I went to the directory where I want to copy the repository and did git clone using sudo (sudo git clone git@gitlab.com:project/projectname.git) and get the following output:
git@gitlab.com: Permission denied (publickey). fatal: Could not read from remote repository.
请确保您具有正确的访问权限并且存储库存在。
我确实有正确的权限,并且正确地在我的Gitlab账户中添加了公钥-我知道这一点是因为如果我不使用sudo关键字进行git克隆,我会得到以下错误:
致命错误:无法创建工作树目录"projectname":权限被拒绝
这告诉我git clone正在成功访问仓库,只是不能写入我当前的工作目录。(我说的对吗?)
为了确认以上内容,我转到主目录,执行了一个不带sudo关键字的git克隆,仓库成功地复制到了服务器的主目录/home/user/...
这是怎么回事?
为了解决这个问题,我只是简单地用"sudo mv"将我的home目录中复制的存储库复制到我打算克隆的web目录中。
- 我不相信这是一个可靠的解决方案,因为它可以完成工作**
我在其他帖子中读到一些评论者说,如果我在克隆之前使用"sudo",则该过程将在/root/. ssh中查找rsa密钥,而不是/home/user/. ssh
其他有助于您帮助我的信息:
- 通过ssh登录DigitalOcean Ubuntu服务器,"ssh user@ipaddress",输入rsa密码
- 在Windows 10上使用GitBash
- "用户"具有sudo权限
- 我使用'user'和sudo在服务器中创建了ssh密钥
- ssh密钥是带密码的4096位密钥
谢谢你。
1条答案
按热度按时间31moq8wy1#
当我在Digital Ocean上以用户身份登录
git clone
时遇到了同样的问题,我通过导航到用户的.ssh
目录,生成一对ssh密钥,然后将.pub
版本添加到我的github帐户中来解决这个问题。