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用户来管理:
useradd zhang_san
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 .ssh
cd .ssh
chmod authorized_keys
把本地的公钥,复制到authorized_keys文件中。
⑤克隆代码:
git clone zhang_san@静态IP:/home/www/项目名字
输入第二步生成公钥时输入的密码,就可以克隆下来代码了。
为了安全考虑,在创建的管理git服务的用户一般不允许登录shell,
方式一:
创建用户时,不使用超级用户创建,也不实用sudo 命令,新创建用户就无法登陆。
方式二:
编辑/etc/passwd文件完成。找到下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
最后一个冒号后改为:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
这样,git用户可以正常通过ssh使用git,但无法登录shell,因为我们为git用户指定的git-shell每次一登录就自动退出。
Git学习之常见错误 clone被拒绝的更多相关文章
- Git学习之常见错误 git push 失败
Git学习之常见错误 git push 失败 问题描述: git push Counting objects: , done. Delta compression using up to thread ...
- Git 学习笔记--删除错误提交的commit
如果不小心把错误的commit给commit了,可以对其进行撤销 1.使用git log查看commit日志,找到错误提交前一版本commit的哈希值; 2.使用git reset --hard co ...
- Oracle学习之常见错误整理
一.ORA-12154: TNS: 无法解析指定的连接标识符 在程序中连接Oracle数据库的方式与其他常用数据库,如:MySql,Sql Server不同,这些数据库可以通过直接指定IP的方式连接, ...
- ssh相关原理学习与常见错误总结
欢迎和大家交流技术相关问题: 邮箱: jiangxinnju@163.com 博客园地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://g ...
- git遇到的常见错误整理
远程仓库与本地代码不一致 解决: git pull --rebase git@gitee.com:l544402029/MUTAO.git 将仓库里的代码pull下来 ,然后重新进行git add ...
- Git学习笔记(0)-错误汇总
一.LF will be replaced by CRLF 1.发现问题 $ git add welcome.txt warning: LF will be replaced by CRLF in w ...
- 【python+selenium学习】常见错误: 'gbk' codec can't decode byte 0xb0 in position 30
最近编写的自动化脚本,数据部分使用到了从配置文件中取,即自定义config.ini,但是在读取配置文件的时候却报错了'gbk' codec can't decode byte 0xb0 in posi ...
- Linux学习笔记 | 常见错误之VMware启动linux后一直黑屏
方法1: 宿主机(windows)管理员模式运行cmd 输入netsh winsock reset 然后重启电脑 netsh winsock reset命令,作用是重置 Winsock 目录.如果一台 ...
- Linux学习笔记 | 常见错误之无法获得锁
问题: 当运行sudo apt-get install/update/其他命令时,会出现如下提示: E: 无法获得锁 /var/lib/dpkg/lock-frontend - open (11: 资 ...
随机推荐
- fetch和axios区别,proxy代理配置
1.今天使用fetch调用接口时使用console.log(res.data)始终是undefined,使用anxios请求则可以成功请求到数据,非常奇怪,于是查了一圈,才搞明白是我自以为了,哎,浪费 ...
- JavaScript创建对象的七种方法
一. 工厂模式 创建: function createPerson(name,behavior){ var p=new Object(); p.name=name; p.behavior=behavi ...
- gp服务输出的结果文件输出到绝对路径
gp服务跟本地用arcmap执行gp有个不同,就是输出的文件一般只能输出到arcgis server默认的output目录里面(arcgis server有此限制,无论怎么配还是写到output目录里 ...
- JavaScript也谈内存优化
相对C/C++ 而言,我们所用的JavaScript 在内存这一方面的处理已经让我们在开发中更注重业务逻辑的编写.但是随着业务的不断复杂化,单页面应用.移动HTML5 应用和Node.js 程序等等的 ...
- 纯css滚动公告栏目
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- (转)Spring4.2.5+Hibernate4.3.11+Struts1.3.8集成方案二
http://blog.csdn.net/yerenyuan_pku/article/details/52894958 前面我们已经集成了Spring4.2.5+Hibernate4.3.11+Str ...
- postman的关联,即如何在请求中引用上次请求返回的值
做接口测试,一定会遇到这种情况,需要拿上次请求的值在本次请求中使用,比如,我们去测试一个东西,要去登录才能做其他的操作,需要拿到登录返回数据中的某些字段,比如,token啊等... 如果发一次请求,就 ...
- python爬虫---从零开始(一)初识爬虫
我们开始来谈谈python的爬虫. 1,什么是爬虫: 网络爬虫是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕虫.互联网犹如一个大蜘蛛 ...
- 设计模式:命令模式(Command Pattern)
问题 某个类中需要定义一个方法,该方法要实现的功能不确定的,需要等到程序执行该方法的时候才确定下来. 例如:定义一个计算数组的方法,可能需要遍历输出数组,也有可能是需要对数组中元素求和. 解决方案 按 ...
- 制作SD更新系统时和用mfgtool工具烧录时,文件如何替换?
制作SD更新系统时和用mfgtool工具烧录时,文件如何替换? 答:制作SD更新系统时,请按照需求选择不同mfgimages-myd*文件夹.每个文件夹里面有一个Manifest文件, 里面规定了ub ...