一文搞懂:Git 创建仓库,借助 SSH 链接实现无缝对接

上一篇文章,我们在本地虚拟机中安装了git服务器,《Rocky 9.x 必看!Linux 下 GIT 服务器安装全攻略》,那下面我们使用GIT创建仓库,并且上传代码,我们通过最简单的链接方式上传,SSH的方式。

一、创建创库文件夹

在个人首页创建文件夹路径 /git/repos/,用于存放所有项目的代码,创建并给与权限,如下:

sudo mkdir -p /home/iRainGit/git/repos
sudo chown -R iRainGit:iRainGit /home/iRainGit/git/repos

二、创建项目仓库

创建项目仓库,进入仓库:

sudo mkdir -p /home/iRainGit/git/repos/test.git
cd  /home/iRainGit/git/repos/test.git

三、初始化裸仓库

git init --bare

如果出现权限问题,如下:

再次给权限就好了:

sudo chown -R iRainGit:iRainGit /home/iRainGit/git/repos/test.git

按理说,设置父级文件夹权限,子集都不用设权限了才是,不过我们不在乎这么一两步。

再次执行git init --bare,如下:

初始化成功!

到这一步,我们已经创建好了一个名为test的仓库,并且初始化了该仓库,只是里面没有存放任何文件,下面我们通过SSH链接到仓库,并上传代码,但是SSH很麻烦,还需要配置。没办法,现在先尝试用SSH的方式,之后再回来学习如何使用HTTPS的方式链接。

四、配置SSH链接

检查虚拟机的 SSH 服务是否运行:

sudo systemctl status sshd

可以看到状态已经开启,并且开发了22端口,这都是我们上一篇文章《Rocky 9.x 必看!Linux 下 GIT 服务器安装全攻略》的结果。

五、客户端生成 SSH 密钥

在开发机器(客户端,主机)上生成 SSH 密钥对,我们的开发机器是windows系统,首先要安装git,关于windows上安装git非常简单,这里就默认已经安装git了。

随便一个文件夹打开中,或者在桌面右键打开git bash,然后写上命令回车:

ssh-keygen -t rsa -b 4096 -C "your.email@example.com"

等待输入,说明了生成秘钥的路径,回车确认即可。

秘钥已经存在,问,要不要覆盖,我也不知道啥时候搞得,先备份一下,在覆盖,备份是一个好习惯,大家要注意。

输入密码,那就输入123456,回车,再次确认密码,回车:

可以看到,秘钥路径下,有两个文件:

六、将公钥添加到GIT服务器(虚拟机)

在git服务器机器上,在个人主页创建authorized_keys文件,并写入公钥

mkdir -p ~/.ssh
nano ~/.ssh/authorized_keys # 粘贴公钥内容,保存退出(Ctrl+O, Enter, Ctrl+X)

设置权限

chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

七、验证 SSH 配置

sudo nano /etc/ssh/sshd_config

确保服务器 /etc/ssh/sshd_config 包含:

PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
PasswordAuthentication yes  # 若需要密码认证
PermitRootLogin yes  # 若需要 root 登录(不推荐)

八、测试链接

在开发机器端,在git bash中写上:

ssh 用户名@服务器IP地址

输入密码回车:

九、上传代码

上文我们创建了仓库test,位置是
/home/iRainGit/git/repos/test.git,现在我们将其克隆下拉,如下命令:

git clone iRainGit@192.168.137.99:/home/iRainGit/git/repos/test.git

输入秘钥密码,回车:

搞事了,找不到命令,后来发现,安装GIT没有配置环境变量,继上一篇文章,无语中...

十、配置git环境变量

配置所有用户有效,编辑/etc/profile

sudo nano /etc/profile

在文件尾部写入:

export PATH="/u01/git/bin:$PATH"

文件生效

source /etc/profile

十一、重新克隆代码

git clone iRainGit@192.168.137.99:/home/iRainGit/git/repos/test.git

进入test项目,写一个自定义文件,

cd test
touch README.md
git add README.md
git commit -m "初始提交"
git push origin master

到此,完成了此篇文章的目的。

讨论:关于SSH链接GIT的开发缺点和优点

优点我倒没觉得有啥优点,缺点倒是一大堆,哈哈,以后在搞HTTPS的方案吧!睡觉了。


原文链接:,转发请注明来源!