如何用SSH密钥连接到Git仓库和远程服务器
目录:
当涉及到Git托管时,您可以使用许多选项。 GitHub,Gitlab和Bitbucket是受欢迎的解决方案,但是运行自己的Git服务器是值得考虑的替代方案。
设置Git Server可以让您创建私有存储库,而不受提供商免费计划的限制。
在本指南中,我们解释了如何在Linux上设置裸Git服务器。 如果您的存储库很少并且合作者都精通技术,则此设置非常有用。 否则,您应该考虑安装自托管的git应用程序,例如Gitea,Gogs或Gitlab。
可以在任何远程Linux机器甚至本地系统上设置Git服务器。
设置Git服务器
第一步是在您的服务器上安装Git。
sudo apt update && sudo apt install git
要在CentOS服务器上安装git软件包,请输入:
sudo yum install git
接下来,创建一个新用户来管理Git存储库:
sudo useradd -r -m -U -d /home/git -s /bin/bash git
用户主目录设置为
/home/git
。 所有存储库都将存储在此目录下。 我们没有为用户“ git”设置密码,只有使用ssh键才能登录。
使用
su
命令切换到用户“ git”:
sudo su - git
运行以下命令创建SSH目录并设置正确的权限:
mkdir -p ~/.ssh && chmod 0700 ~/.ssh
创建一个名为
~/.ssh/authorized_keys
的文件,该文件将包含授权用户的SSH密钥:
touch ~/.ssh/authorized_keys && chmod 0600 ~/.ssh/authorized_keys
而已。 服务器设置完成。 现在您可以创建您的第一个Git存储库。
运行以下命令以启动新的空存储库:
git init --bare ~/projectname.git
您可以根据需要命名目录。 重要的是在“ git”用户主目录下创建存储库。
Initialized empty Git repository in /home/git/projectname.git/
配置本地Git存储库
为了能够将本地git更改推送到Git服务器,您需要将本地用户SSH公钥添加到远程“ git”用户的
authorized_keys
文件中。
cat ~/.ssh/id_rsa.pub
输出应类似于以下内容:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDd/mnMzHwjUzK8g3ldfsfRpJuC16mhWamaXRk8ySQrD/dzpbRLfDnZsLxCzRoq+ZzFHGwcQlJergtergdHGRrO8FE5jl3IWRRp+mP12qYw== [email protected]
要生成新的SSH密钥对,请使用以下命令:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
复制上面的
cat
命令的输出,然后返回到Git服务器控制台。
在服务器上,打开文本编辑器,然后将从本地计算机复制的公钥粘贴到
~/.ssh/authorized_keys
文件中:
sudo nano /home/git/.ssh/authorized_keys
整个公钥文本应该在一行上。
我们假设您的本地计算机上已经安装了Git软件包。 如果没有安装,请按照前面几节中所述的相同方法进行安装。
cd /path/to/local/project
初始化git仓库:
git init.
最后一步是将git remote添加到本地存储库:
git remote add origin git@git_server_ip:projectname.git
不要忘记用您的Git服务器主机名或IP地址替换
git_server_ip
。
要验证所有设置是否正确,请创建一个测试文件:
touch test_file
将更改添加到登台区域:
git add.
提交更改:
git commit -m "descriptive message"
将本地存储库更改推送到远程存储库:
git push -u origin master
如果一切设置正确,则输出应如下所示:
Counting objects: 3, done. Writing objects: 100% (3/3), 218 bytes | 218.00 KiB/s, done. Total 3 (delta 0), reused 0 (delta 0) To git_server_ip:projectname.git * master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.
要添加新的协作者,只需将其公共SSH密钥复制到“ git”用户的
~/.ssh/authorized_keys
文件中即可。
您可以使用相同的步骤来创建新的存储库。 重要的是要注意,在将git remote添加到本地存储库之前,远程存储库必须存在。
结论
在本教程中,我们向您展示了如何设置自己的私有Git服务器并创建存储库。







