Linux从Git仓库创建到本地开发SSH配置

最近做了些开发环境构建的工作,记录一下以备以后所需,本次构建的本地开发环境为win10,开发服务器为centos8。

centos8安装git及开发仓库相关配置

# git安装
[root@#localhost ~] dnf -y install git 
# git管理专用账户创建
[root@#localhost ~] useradd git 
# 设置git用户密码
[root@#localhost ~] passwd git 
# 创建开发repo
[root@#localhost ~] mkdir /home/git/myproject.git 
# 改变开发repo所有者为git账户
[root@#localhost ~] chown -R git:git /home/git/myproject.git 
# 修改开发账户devuser所属组为git
[root@#localhost ~] gpasswd -a devuser git 
# 进入开发repo,并初始化repo
[root@#localhost ~] cd /home/git/myproject.git
[root@#localhost myproject.git] git init --bare --shared

至此开发用的仓库创建完毕,可以在本地任意路径执行以下命令下载仓库,下载过程中需要使用密码。

git clone devuser@hostname:/home/git/myproject.git

使用ssh来管理git

开发中每次pull,push的时候输入密码什么的相当麻烦,我们可以使用ssh来替换密码认证。针对本地开发所使用的公钥密钥对,我们可能需要2种格式,一种提供给使用命令行的openssh使用,另一种提供给使用putty的TortoiseGit等工具使用。当然我们可以统一使用openssh格式的,这样就需要修改一下TortoiseGitnetwork中使用的ssh client,将默认的C:\Program Files\TortoiseGit\bin\TortoiseGitPlink.exe改为C:\Program Files\Git\usr\bin\ssh.exe即可。

配置openssh来支持vscode,命令行等连接

本地安装git后,打开git bash命令行工具,通过ssh-keygen创建格式为rsa的密钥对。

$ ssh-keygen -t rsa -C "[email protected]"

-C 后是输入此密钥对的备注信息,一路默认将在当前用户文档的 .ssh 下创建私钥文件 id_rsa 和对应的公钥文件 id_rsa.pub

执行以下命令启动authentication agent

$ eval "$(ssh-agent)"

执行ssh-add命令添加私钥。

$ ssh-add ~/.ssh/id_rsa

执行ssh-copy-id命令将自动添加公钥到centos服务器上用户devuser/home/devuser/.ssh/authorized_keys文件中。

$ ssh-copy-id devuser@hostname

在当前用户文档的 .ssh 手动创建 config 文件,配置连接的相关信息。

Host hostname
  HostName hostname
  IdentityFile ~/.ssh/id_rsa
  User devuser

执行连接命令测试

$ ssh -vT devuser@hostname

如果以上配置无误,连接成功,此时在vscode环境中也可以直接安装git插件进行相关的代码更新及提交作业。

配置TortoiseGit

TortoiseGit所使用的密钥对格式与之前配置的openssh不一致,因此只能通过PuTTygen来生成。如下图所示,打开PuTTygen以后,点击Generate按钮即可开始生成,过程中保持鼠标移动。

生成后的密钥保存到当前用户文档的 .ssh下,命名为id_rsa_putty.ppk,同时保存公钥文件为id_rsa_putty.pub

手动将公钥数据添加到centos服务器上用户devuser/home/devuser/.ssh/authorized_keys文件中后,本地打开TortoiseGit配置,如下图所示Putty Key选中刚创建的私钥文件id_rsa_putty.ppk

到此为止,即可使用TortoiseGit来免密码获取仓库文件。

你可能感兴趣的:(Linux从Git仓库创建到本地开发SSH配置)