Git学习之常见错误 clone被拒绝

Posted gyfluck

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git学习之常见错误 clone被拒绝相关的知识,希望对你有一定的参考价值。

Git学习之常见错误


 

问题:

  git clone 时 报错 Permission Denied (权限被拒绝)。


 

解决方法:

  需要把本地的公钥上传到服务器。


 

解决步骤:

  ①第一步,设置本地的git的用户名和邮箱。

  鼠标右键 -->【Git Bash Here】,打开命令行。  

(注意 --global 表明本机的所有git仓库均使用该配置,根据自己实际需求配置)

git config --global user.name 用户名

git config --global user.email 邮箱地址

  查看用户名和邮箱:

git config --global user.name 

git config --global user.email

  ②第二步,本地生成公钥。

  鼠标右键 -->【Git Bash Here】,打开命令行操作。

$ ssh-keygen -t rsa -C "git的email"

  然后会看到以下提示:

  输入私钥文件保存的位置,如果不想指定,就按Enter键,选择默认的:

Enter file in which to save the key (/c/Users/admin/.ssh/id_rsa): 

  然后输入两次密码: 

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

  正常会生成私钥文件和公钥文件:id_rsa和id_rsa.pub。

  ③第三步,服务器端git打开RSA认证。

  进入/etc/ssh目录,编辑sshd_config,把下面三个注释打开。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

  保存,并重启服务,

/etc/rc.d/init.d/sshd restart

//如果没有rc.d或者sshd命令,可以使用
sudo service ssh restart

  ④第四步,将客户端的公钥导入服务器authorized_keys文件里。

  这里需要注意,在第三步配置RSA认证时,配置的这一行:

  AuthorizedKeysFile .ssh/authorized_keys

 这一行,表示的实际意思是 $Home/.ssh/authorized_keys,
  然后还要根据管理Git服务的用户是谁,来确定具体的路径,

 例如:
   管理git的用户是git,那么实际存放公钥的路径是 /home/git/.ssh/authorized_keys。
   管理git的用户是zhang_san,那么实际存放公钥的路径是 /home/zhang_san/.ssh/authorized_keys。

 一般情况,都会配置一个专门的用户对git和代码进行管理,假如我们创建一个zhang_san用户来管理:
sudo useradd zhang_san
sudo passwd zhang_san
//输入密码
 然后创建zhang_san管理git公钥文件:
 sudo mkdir -p /home/zhang_san/.ssh
cd /home/zhang_san/.ssh
sudo touch authorized_keys

  修改文件所属用户、所属组、以及具体权限:  

sudo chown -R zhang_san:zhang_san /home/zhang_san/.ssh
//切换到zhang_san用户
su zhang_san

cd /home/zhang_san
chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys

  把本地的公钥,复制到authorized_keys文件中。

  ⑤克隆代码: 

git clone [email protected]静态IP:/home/www/项目名字

  输入第二步生成公钥时输入的密码,就可以克隆下来代码了。





 















以上是关于Git学习之常见错误 clone被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

当我执行 npm install 时,Git Clone 的权限被拒绝

git clone 有效; git子模块失败“权限被拒绝”

SSH 公钥在“git clone”命令上被拒绝

git clone出现的拒绝连接问题

Git 学习之关于版本库

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段