树莓派上安装了Git软件,在Coding.net上创建了版本库,然后clone下来:1
pi@raspberrypi:~ $ git clone git@git.coding.net:username/projectname.git
成功clone下来,然后完成一次提交再push回去的时候却报错了,总结原因,写下我的折腾记录。。。
首先要生成ssh密钥,用命令$ ssh-keygen -t rsa -C "username@host.com"
生成密钥,默认保存在/home/user/.ssh
目录下,包括id_rsa
和id_rsa.pub
两个文件,其中第一个是私钥,、第二个是公钥。
打开公钥,将所有内容复制,然后去coding.net的我的账户->SSH公钥
,将复制的公钥内容粘贴进去,名称和有效日期按照自己的需求定义,最后点击添加。
然后再次push,还是报错,内容大致为:1
2Permission denied (publickey).
fatal: Could not read from remote repository.
于是继续百度……发现需要把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add。来自: http://man.linuxde.net/ssh-add
于是,执行上述命令,发现又报错了:1
2$ ssh-add ~/.ssh/rsa
Could not open a connection to your authentication agent.
继续搜索解决方案,最终按照以下方法解决了这个问题:
先执行
eval `ssh-agent` (是~键上面的那个`)
再执行 $ ssh-add ~/.ssh/rsa
成功,最后 $ ssh-add -l
就可以看到新加的rsa了。
完成如上步骤,再次尝试$ git push
,发现终于可以推送成功了~~~