一、概述

  服务器的免密登录和git服务器的搭建,关键都是要学会把自己用的机器的公钥添加到服务器上,让服务器“认识”你的电脑,从而不需要输入密码就可以远程登录服务器上的用户

  免密登录当然是登录root用户,而搭建git服务器需要在服务器上创建一个git用户。注意服务器上每个用户识别的公钥存在不同的文件中,因此需要自己的电脑既能免密登录,又能使用git服务器,就要把自己电脑的公钥添加到两个文件中

二、服务器免密登录

  1、修改服务器sshd config配置

  登录服务器的root用户,然后输入

vim /etc/ssh/sshd_config

  编辑root用户的ssh设置,在文件中加入

RSAAuthentication yes
PubkeyAuthentication yes

  两句,用以开启ssh证书登录

  注意到文件中有一行

AuthorizedKeysFile    .ssh/authorized_keys

  这里指定了root公钥存放的文件,下一步要做的就是将我的电脑的公钥加到这个文件里

  2、获取自己机器的公钥

ssh-keygen -t rsa

  之后一路回车,公钥和私钥都会存在默认的~/root/.ssh/目录中。

  进入这个目录,用  cat id_rsa.pub  查看公钥,然后将显示的内容复制到服务器的authorized_keys中即可,此文件一行一个公钥

  3、免密登录

  在自己的机器中输入ssh root@服务器公网ip就可以直接登录服务器的root账号了

  4、禁用密码登录(可选

  防止服务器登录密码被暴力破解,禁用密码登录,修改sshd_config,找到PasswordAuthentication将它设置为no

  重启ssh服务

service sshd restart

三、搭建git服务器

  在理解了服务器免密登录的原理后搭建git服务器就很简单了,我们需要创建一个用户git,把git仓库授权给git管理,然后把允许访问git仓库的机器的公钥添加到git用户的authorized_keys文件中。

 1、安装git

yum install -y git

  -y:对安装过程中所有的提示选择yes

 2、创建git用户

adduser git

 3、配置git用户的ssh访问设置

  进入git用户目录

cd /home/git

  创建.ssh文件夹

mkdir .ssh

  将.ssh文件夹的权限值设为700,即只允许本用户和root用户拥有读、写、执行权限。

chmod  .ssh

  这么做的原因是是如果authorized_keys文件、$HOME/.ssh目录 或 $HOME目录让本用户之外的用户有写权限,那么sshd都会拒绝使用 ~/.ssh/authorized_keys 文件中的key来进行认证的。

  创建一个空文件authorized_keys

touch .ssh/authorized_keys

  将authorized_keys权限值设为600,即只允许本用户和root用户拥有读、写权限。

chmod  .ssh/authorized_keys

  将git文件夹的用户名和组名都改为git,-R表示对该文件夹下所有子文件进行同样的操作

cd /home
chown -R git:git git

 4、将本机公钥拷贝到git的authorized_keys中,一行一个

 5、创建git仓库

  在home目录下新建一个gitrepo文件夹作为git仓库的储存室

cd /home
mkdir gitrepo

  将此文件夹归为git所有

chown git:git gitrepo

  创建第一个git仓库

cd gitrepo
git init --bare test.git

  将仓库归为git所有

chown -R git:git test.git

 6、在客户端拉取服务器新建的git仓库

git clone git@公网ip:/home/gitrepo/test.git

  在本地编辑仓库并提交后,可以连接到服务器查看git仓库的修改时间,如果修改时间有变化则说明提交成功

 7、从客户端push仓库

git remote add origin git@公网ip:/home/gitrepo/test.git
git push -u origin master

 8、禁用shell登录

  如果希望git用户不能登录shell,就要修改git用户的权限

  修改/etc/passwd

vim /etc/passwd

  将

git:x::::/home/git:/bin/bash

  改为

git:x::::/home/git:/bin/git-shell

  这样,git用户可以正常通过ssh使用git,但无法登录shell。

Centos服务器ssh免密登录以及搭建私有git服务器的更多相关文章

  1. 【Linux】两台服务器ssh免密登录

    背景: 有些场景可能用到两台服务器ssh免密登录.比如服务器自动化部署 开始准备:  服务器A  linux   ip: 192.168.1.1 服务器B  linux  ip: 192.168.1. ...

  2. 多台服务器-SSH免密登录设置

    在4台服务器-SSH免密登录设置,如以下4台服务器 master1 node001 node002 node003 我想在master1对4台服务器进行拉取或者分发任务或者是集群服务器的批量操作,但是 ...

  3. linux服务器ssh免密登录

    环境:两台服务器,Park01.Park02,配置ssh免密登录 在Park01执行:ssh-keygen 然后一直回车 生成节点的公钥和私钥,生成的文件会自动放在/root/.ssh目录下   然后 ...

  4. jsch配置sftp服务器ssh免密登录

    前期对接了一个通过ssh免密登录的需求,是基于原先密码登录sftp服务器的代码上进行改造,实际上代码改动量非常少,趁此机会对自己整理的资料做一下总结. 1. 什么是SFTP SFTP是一个安全文件传送 ...

  5. CentOS配置SSH免密登录

    假如我们有两台CentOS机器,192.168.199.101,192.168.199.102,要想在101上远程连接102可以通过ssh命令来实现 ssh 192.168.199.102 如果没有配 ...

  6. CentOS 7 SSH 免密登录的方法

    先决条件 3 台 CentOS 7 HOSTNAME IP ROLE server1 10.8.26.197 Master server2 10.8.26.196 Slave1 server3 10. ...

  7. ssh免密登录linux服务器

    Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...

  8. 配置ssh免密登录遇到的问题——使用VMware多虚拟机搭建Hadoop集群

    搭建环境: 虚拟机 VMware12Pro      操作系统  centos6.8        hadoop 1.2.1 1.导入镜像文件,添加java环境 1.查看当前系统中安装的java,ls ...

  9. SSH远程登录:两台或多台服务器之间免密登录设置

    有两台(或多台)同局域网的服务器A:192.168.2.21,B:192.168.2.25.让A,B这两台服务器之间能两两互相免密登录,并且每台服务器都可以自我免密登录(自我免密登录即:ssh loc ...

随机推荐

  1. Flink table&Sql中使用Calcite

    Apache Calcite是什么东东 Apache Calcite面向Hadoop新的sql引擎,它提供了标准的SQL语言.多种查询优化和连接各种数据源的能力.除此之外,Calcite还提供了OLA ...

  2. 【EF】解决EF批量操作,Z.EntityFramework.Extensions 过期方案

    方案一: 使用EntityFramework.Extended优点: 启下载量是Z.EntityFramework.Extensions的10倍+ 不会过期缺点:不能批量Insert 方案二:解决批量 ...

  3. javabean 参数收集 设置属性 设置不同级别的域对象的属性 默认存储在pagecontext中

    javabean 参数收集  设置属性 设置不同级别的域对象的属性  默认存储在pagecontext中

  4. Python 开篇及第一个Python程序

    本节内容 python 简单介绍 python 2.x 或者python 3.x python 安装 第一个python程序 一.python简单介绍 python的创始人为吉多.范罗苏姆(Guido ...

  5. POJ2724:Purifying Machine——题解

    http://poj.org/problem?id=2724 描述迈克是奶酪工厂的老板.他有2^N个奶酪,每个奶酪都有一个00 ... 0到11 ... 1的二进制数.为了防止他的奶酪免受病毒侵袭,他 ...

  6. bzoj2588: Spoj 10628. Count on a tree(树上第k大)(主席树)

    每个节点继承父节点的树,则答案为query(root[x]+root[y]-root[lca(x,y)]-root[fa[lca(x,y)]]) #include<iostream> #i ...

  7. angularJS前端分页插件

    首先在项目中引入 分页插件的 js 和 css: 在html页面引入 相关js 和 css: 在控制器中引入分页插件中定义的 module[可以打开pagination.js查看,可以看到 其实,在插 ...

  8. 关于notepad++如何自动补全标签的问题

    转自:https://blog.csdn.net/Panda_Eyes1/article/details/81486331 关于notepad++如何自动补全标签的问题 2018年08月07日 18: ...

  9. 将微服务注册到Eureka Server

    一.微服务程序编写 1.在已写好的微服务程序中添加pom依赖: <dependency> <groupId>org.springframework.cloud</grou ...

  10. 集成淘宝sdk

    204是安全图片的问题, 请先检测以下几点: .请检测百川控制台是否已经申请初级API. .请检测百川控制台“我的产品后台”是否开通电商SDK应用.(重点检测很多用户疏忽这一点) .debug版本的可 ...