因为比赛需要将本地文件文件push到阿里云,使用实验室电脑是好的,然后换了一台电脑使用git中push命令就出现Permission denied (publickey).错误。也是google了好久才解决了。
1. 问题出现
将本地的 Git 仓库推送到阿里云,出现错误:
Permission denied (publickey).fatal: Could not read from remote repository.
2. 原因
原因是SSH keys没有设置或者过期了,SSH keys 可以在没有密码的情况下信任当前工作的计算机。
3. 解决(这里以阿里云为例)
关于git将本地文件上传项目到GitHub网站?大家可以参考Ubuntu环境如何上传项目到GitHub网站?, 其实我们的阿里云和Github其实道理是类似的。
3.1 从官网下载git,然后安装,这一步可自己google。
3.2 在阿里云上面创建project,如图:
3.3 回到本地,进入本地代码文件目录,右击打开git
3.4 添加Git用户名并设置邮箱
您创建的每次Git提交都会使用该信息,所以很重要。在您的shell中,运行如下命令来添加用户名,在创建项目的时候已经有了:
git config --global user.name 您的名字
然后验证该配置是否正确:
git config --global user.name
使用如下命令设置邮箱地址:
git config --global user.email 您的邮箱地址
使用如下命令验证邮箱设置是否正确:
git config --global user.email
由于使用了“–global”选项,所以您只需要做一次这样的配置。Git会在您系统的任何项目中使用这个信息。如果您希望在某个特定的项目中使用不同的用户名和邮箱地址,可以在那个项目中重新运行该命令,但不加“–global”选项
3.5创建和添加SSH Keys
输入指令ssh-keygen -t rsa
,生成sshKEY,在本地的./ssh
文件夹下面的id_rsa.pub
文件里面,复制全部内容,把内容拷贝到阿里云CODE里面。打开阿里云管理控制台 点击右上角的ADD SSH KEY。关于具体的添加SSH Keys,可以参考阿里云Code SSH KEY 代码入库。所以这里出现我们刚添加的SSH密钥。
3.5 后面就是常规操作(和将本地文件推送到Github上是一样)
cd existing_foldergit initgit remote add origin git@:username/target_example.git(username换成自己的名字)git add .git commitgit push -u origin master
3.6 完成
阿里云上也更新了状态:
时间有点晚了,要睡觉了。