Linux笔记 #06# 在VPS上自建Git服务
参考:
GitHub Help: Connecting to GitHub with SSH
1. 安装记录(可能有错。。。)
本地( Debian 8.8):
sudo apt-get install git git version # 确保正确安装
root@xkfx:~# git config --global user.name "little fish"
root@xkfx:~# git config --global user.email "little_fish@163.com"
# 初始设置,作为储存在本地的变量,会用在Git的提交日志中
root@xkfx:~# git config user.name
little fish
root@xkfx:~# git config user.email
little_fish@.com
生成 ssh key (这个不是 git 命令!),
root@xkfx:~# ssh-keygen -t rsa -C "little_fish@163.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
:f3:c5::::3f:::fc::c7:df:4c:9c: little_fish_pubic@gmail.com # 已改,仅作示范
The key's randomart image is:
+---[RSA ]----+
| .*..+o..E...|
| o.++ +o .o|
| .oo + +. + |
| ..o = . o|
| S . |
| . |
| |
| |
| |
+-----------------+
总之本地持有私匙,远程持有对应公匙,这样双方才能安全通信。关于邮箱参数有啥用可以参考这个文档(是作为 ssh key 的一个标签,这在仓库放在 github 上的时候会有用 ~)密码是给私匙配的。
VPS(Centos 6 x86 bbr ):
[root@xkfx ~]# yum install git
[root@xkfx ~]# git version
把有权限访问的【终端的公匙】拷贝进去,一行一个,
root@xkfx:~# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGetaJDc9kTMrRlw+++ve+w4gamJH2LfNC9qJa/LbvXUFkO1atJCQxn2DlaNvQxrMvSSAHRNo2MmNnxRp9Vi8sg6KawgVKx6n60maMxvMugkzV+BOm8ds+C5M+JAdRzjBzfdgWIMgdqZfyfG1sHnTg6JGvzCxJ9DigNb+2cho20CXhCv5JKsn2fHzyc75BguT8gxZ7e9vtQNWywLNNse8mCFmc28kmxXo14eDuZPbDGnEU12BO+UFVqYbeFVNLVcS8x2GiJg/Iy5pDCPScPI0iyZGor7AkI0SjfhQuc4uMDVIDWC5gp8cqudxP little_fish_pubic@gmail.com
[root@xkfx ~]# sudo adduser git
[root@xkfx ~]# cd /home/git
[root@xkfx git]# mkdir .ssh
[root@xkfx git]# vim /home/git/.ssh/authorized_keys
[root@xkfx git]# sudo git init --bare sample.git
Initialized empty Git repository in /home/git/sample.git/
出于安全性考虑,
[root@xkfx git]# sudo chown -R git:git sample.git
[root@xkfx git]# vim /etc/passwd
2.基本操作尝试
root@xkfx:~# git clone git@your ip address:/home/git/sample.git
Cloning into 'sample'...
ssh: connect to host your ip address port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
---------------------------------------------------------------------------------------
root@xkfx:~# eval $(ssh-agent -s)
Agent pid 16083
root@xkfx:~# ssh-add ~/.ssh/id_rsa
Enter passphrase for /root/.ssh/id_rsa:
Bad passphrase, try again for /root/.ssh/id_rsa:
Identity added: /root/.ssh/id_rsa (/root/.ssh/id_rsa)
root@xkfx:~# ssh -T git@your ip address
ssh: connect to host your ip address port 22: Connection refused
---------------------------------------------------------------------------------------
root@xkfx:~# ssh -T git@github.com
The authenticity of host 'github.com (192.30.253.112)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.253.112' (RSA) to the list of known hosts.
Permission denied (publickey).
---------------------------------------------------------------------------------------
换菜鸟教程从头敲一遍 失败
换了个 VPS 按照菜鸟教程重敲了一遍 就成功了。
root@xkfx:~# groupadd git
root@xkfx:~# useradd git -g git
root@xkfx:~# cd /home/git/
root@xkfx:/home/git# mkdir .ssh
root@xkfx:/home/git# chmod .ssh
root@xkfx:/home/git# touch .ssh/authorized_keys
root@xkfx:/home/git# chmod .ssh/authorized_keys
root@xkfx:/home/git# cd /home
root@xkfx:/home# mkdir gitrepo
root@xkfx:/home# chown git:git gitrepo/
root@xkfx:/home# cd gitrepo
root@xkfx:/home/gitrepo# git init --bare runoob.git
Initialized empty Git repository in /home/gitrepo/runoob.git/
root@xkfx:/home/gitrepo# chown -R git:git runoob.git # 必要的!否则会因为权限不够无法 push
root@xkfx:/home/gitrepo# vim /home/git/.ssh/authorized_keys
mdzz@LAPTOP-QGECNCGO MINGW64 /d/labs
$ git clone git@????????????:/home/gitrepo/runoob.git
Cloning into 'runoob'...
warning: You appear to have cloned an empty repository.
3. 应用
存放不愿公开的项目
作为网盘方便地保存重要文件
例如打算写个小项目:
在 VPS 上建立仓库,无论你在本地是否已经开始写(写了就 移花接木 :D)
VPS:
root@xkfx:/home/gitrepo# git init --bare mangast.git
root@xkfx:/home/gitrepo# chown -R git:git mangast.git
本地:
$ git clone git@????????????:/home/gitrepo/mangast.git
--------- 移 花 接 木 ------
$ git add sql/ src/ web/
$ git commit -m "basis."
$ git push origin master
Linux笔记 #06# 在VPS上自建Git服务的更多相关文章
- 自建Git服务Gogs和CI/CD服务Drone
自建Git服务Gogs和CI/CD服务Drone 项目:https://gogs.io Gogs运行 docker run -d --name=gogs -p 10022:22 -p 10088:30 ...
- golang 2行代码在基于arm linux的树莓派、orangepi上运行http web服务
go语言(golang)简化了跨平台交叉编译步骤,支持在windows系统下交叉编译基于arm+linux平台的应用,运行时无需其它依赖库.以下以一个简单的http server为例,先上源码: ** ...
- Git学习笔记(四)标签和搭建Git服务
一.标签是什么 发布一个版本时,我们通常先在版本库中打一个标签,这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一 ...
- Linux 笔记 #03# 在 Debian远程服务器上运行 Java socket程序
我试图做什么:把我的破代码放到服务器上运行,并成功与客户端进行 socket通信. 预备环境:刚安装好 MySQL 和 JVM 的 Linux远程服务器(Debian 8)一台. 主要有如下几个步骤: ...
- 在vps上安装 kali linux
在渗透测试过程中,很多时候我们需要反弹一个shell回来.使用empire也好,MSF也好,其他工具也好,都避不开公网IP的问题.这时候我们就需要一个VPS来进一步进行渗透测试. 建立通道连接的方式有 ...
- 如何在LINUX VPS上安装VPN详细步骤
在vps上安装vpn是个难点,很多朋友都不会,这儿结合一位朋友的安装经验做下介绍.注意你的vps要安装做vpn使用,一定要注意你的流量限制,使用Vpn上游戏上youtube看视频等都比较耗费资源,否则 ...
- 使用 Linux 终端 SSH 登录 VPS
Windows 中远程 SSH 登录 VPS 进行管理的利器是 PuTTY,但是 Linux 中就没必要用它了.Linux.Unix(包括 Mac iOS)都必然有内置的命令行终端,内建了 OpenS ...
- 在VPS上安裝BT軟體Transmission
在VPS上安裝BT軟體Transmission 作者: 窮苦人家的小孩 | 2009-12-04 55 Comments VPS 還能怎玩?! 裝Proxy,裝VPN,這還不夠,我還用來掛種子 ...
- VPS上拖文件(Apache配置、SSH)
场景 下载VPS上的文件 命令 Apache配置 yum install httpd -y /etc/rc.d/init.d/httpd start /sbin/iptables -I INPUT - ...
随机推荐
- Putty的安装和使用
Putty是最简单易用的SSH工具,详细介绍其安装和使用 直接在百度里搜索Putty,可以找到百度软件中心,或者官方网站: PuTTY Download Page. 进入官方网站,直接可执行文件装 ...
- memset和memcpy函数、atoi函数
memset void *memset(void *s,int c,size_t n) 总的作用:将已开辟内存空间 s 的首 n 个字节的值设为值 c.如下: // 1.将已开辟内存空间s的首n个字节 ...
- PHP中str_replace和substr_replace有什么区别?
两个函数的定义:(1)str_replace() 函数替换字符串中的一些字符(区分大小写). 该函数必须遵循下列规则: 如果搜索的字符串是一个数组,那么它将返回一个数组. 如果搜索的字符串是一个数组, ...
- android基础---->NDK的使用
NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式.NDK将是Android平台支持C开发的开端,今天我们开始ndk的学习. NDK的简要说明 ndk是什么: The Nati ...
- 微信小程序 --- 模板的使用
由于微信小程序文件大小的限制,可以把一些公用的文件 单离出来形成模板,从而被各个模板引用: 定义模板第一种方式: 新建一个目录: 写入: <text>hello world</tex ...
- [Gradle] 查看项目依赖
查看项目的编译依赖 $ ./gradlew :app:dependencies --configuration compile 查看具体某个库的依赖 $ ./gradlew -q :app:depen ...
- Vue2.0 新手完全填坑攻略——从环境搭建到发布
Jinkey原创感谢 showonne.yubang 技术指导Demo 地址:http://demo.jinkey.io/vue2源码:https://github.com/Jinkeycode/vu ...
- poj1934 Trip【线性DP】【输出方案】
Trip Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 3850 Accepted: 1030 Description ...
- hihoCoder_1449_后缀自动机三·重复旋律6
#1449 : 后缀自动机三·重复旋律6 时间限制:15000ms 单点时限:3000ms 内存限制:512MB 描述 小Hi平时的一大兴趣爱好就是演奏钢琴.我们知道一个音乐旋律被表示为一段数构成的数 ...
- New Garbage Collector http://wiki.luajit.org/New-Garbage-Collector
New Garbage Collector http://wiki.luajit.org/New-Garbage-Collector GC Algorithms This is a short ove ...