博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Git 服务器配置过程及问题备忘
阅读量:6233 次
发布时间:2019-06-21

本文共 2343 字,大约阅读时间需要 7 分钟。

以下记录简单的 Git 服务器配置过程及在此期间出现的一些问题的解决方法。以下内容所用的服务器操作系统为 CentOS 6.5,本地为 Mac。

1. Git 服务器配置过程

1.1 安装 Git

yum -y install git 这一步很多,不再赘述。

1.2 创建 git 用户

创建一个 git 用户。这里也可以不创建而直接使用 root,但使用 root 操作服务器不被建议。

依次运行以下两步:

  1. useradd git

  2. passwd git your-password 注:后面为自定义的密码

1.3 安装 SSH

yum install openssh-server 同 1.1,不再赘述,可参考。

1.4 测试连接

在本地执行:ssh -T git@your.server.ip.addr 注:后面为服务器域名或 ip 地址。

如果报错 Permission denied, please try again. 则失败。

注:可能会出现提示:

Last failed login: Tue Nov  8 11:50:06 CST 2016 from xxx on ssh:notty There were 548 failed login attempts since the last successful login.

也为连接成功。

1.5 本地生成公私密钥对

在本地执行:ssh-keygen -t rsa -C "xxx@xxx.com" 注:后面为用户名,可随意命名

此操作后,会在 ~/.ssh 下创建两个文件 id_rsaid_rsa.pub,其中前者是私钥,后者为公钥。有关公钥私钥和 RSA 算法可参见。

2. 问题备忘

2.1 密码问题

在进行连接测试 ssh -T git@your.server.ip.addr 的时候,会让我们输入密码,这一情况同样会出现在使用 git clone xxx 等操作中。如果想不再输入密码,可以复制本地 id_rsa.pub 的内容到服务器的 authorized_keys 文件中,具体步骤如下:

  1. 复制本地 id_rsa.pub 内容,执行 cat ~/.ssh/id_rsa.pub,将内容复制;

  2. 在服务器端创建 authorized_keys 文件,执行 cd ~/.sshvim authorized_keys,并将内容粘贴进去,之后若还需添加其他客户机,可回车换行后再输入,保证每行一个。(在 vim 指令后,点击 i 键 进如输入状态,粘贴 1 中的文本,之后按 ESC 键 退出输入状态,再输入 :wq 即可完成粘贴。这一步涉及简单的 vim 操作,其他相关内容可自行查找资料)。

2.2 authorized_keys 失效问题

进行 2.1 步骤后,在本地执行 ssh -T git@your.server.ip.addr 后,可能出现仍然要求输入密码的问题,原因和解决方法如下:

原因一:
  1. 问题原因:创建的 authorized_keys 文件所在用户目录和使用 ssh -T 连接的用户不同。由于创建 authorized_keys 需要登录到服务器,此时若使用 ssh root@your.server.ip.addr 登录服务器,然后执行对 ~/.ssh/authorized_keys 文件的修改,则修改的是 ssh 对 root 用户的请求限制。也就是说,在这种情况下,执行 ssh -T root@your.server.ip.addr 是不用输入密码的,受益的是 root 用户,而不是 git。

  2. 解决方法: 在 git 用户空间下的 .ssh/authorized_keys 中粘贴进本地的公钥。可以使用 git 用户登录服务器,使用 vim ~/.ssh/authorized_keys 粘贴公钥;或用 root 登录,然后对 /home/git/.ssh/authorized_keys 进行修改,其中,前面的路径表示 git 的用户空间,此外,若 git 用户目录下没有 .ssh 文件夹,则使用 mkdir .ssh 创建之(root 用户有最高权限,可操作其他用户)。

原因二:
  1. 问题原因:.ssh 目录和 authorized_keys 文件权限不对。

  2. 解决方法:分别修改这两部分的权限:1) sudo chmod -R 700 ~/.ssh, 2) sudo chmod -R 600 ~/.ssh/authorized_keys。注意,这里修改的依然是想要不输密码就可连接的用户所在用户空间的文件权限和目录权限,参见原因一。

原因三:
  1. 问题原因:用户空间权限不对。

  2. 解决方法:首先使用 root 登录服务器 ssh root@your.server.ip.addr,修改相应用户空间的权限:sudo chmod -R 755 /home/git,其中,路径为想要修改的用户空间路径。注意,如果想让 root 用户不输密码连接,则无需进行这一步。

2.3 .ssh 目录下各文件的意义

注:以下文件可能不存在。

  1. id_rsa:私钥;

  2. id_rsa.pub:公钥;

  3. authorized_keys:服务器端记录公钥的文件;

  4. known_hosts:当本地与服务端连接时,本地 SSH 记录服务端的 Host、IP 以及 RSA 等信息的文件。当连接时出现:Permanently added 'your.server.ip.addr' (RSA) to the list of known hosts. 时,若选择 yes 则会创建这一文件。

3. 参考

转载地址:http://htxna.baihongyu.com/

你可能感兴趣的文章
归并排序以及逆序数计算
查看>>
jQuery 下拉列表 二级联动插件
查看>>
jQuery的样式篇
查看>>
QT(4)信号与槽
查看>>
(转)jieba中文分词的.NET版本:jieba.NET
查看>>
PHP 反射机制
查看>>
jQuery手风琴效果
查看>>
oracle调度中使用schedule管理调度
查看>>
Ubuntu 14.04 Remmina远程桌面连接Windows计算机
查看>>
php 在linux系统下写出文件问题
查看>>
将EXCEL转为HTML有什么好办法?
查看>>
了解一下Elasticsearch的基本概念
查看>>
二、let变量声明方式介绍
查看>>
iOS逆向:在任意app上开启malloc stack追踪内存来源
查看>>
【BZOJ】4033: [HAOI2015]树上染色 树上背包
查看>>
python学习三:列表、元组、字典、集合
查看>>
iOS中使用UISegmentControl进行UITableView切换
查看>>
自适应响应式,手机,平板,PC,java企业网站源码
查看>>
【CodeForces】835F Roads in the Kingdom
查看>>
2014.4.17—openflow代码流程
查看>>