「解析」Jetson配置 git服务

发布时间:2024年01月17日

这两天感冒了在家休养,想着把之前买的 Jetson 开发板用起来,买Jetson的初衷就是用来学习Linux系统,顺道可以部署算法,以及一些其他需求,相比树莓派而言,Jetson开发相对更贵,但是其配备了英伟达的显卡以及CUDA,这一点是树莓派所无法比拟的,正好在家休息就补个坑。之前一直有个想法:如何在开发板上配置 git服务,将自己的项目代码 备份到自己的服务器,即保证数据的版本管理,也保证了数据的安全性,顺道还可以学习下 git / linux 的相关命令。

之前有给自己装备一款NAS,因为功能简单只能当做纯文件存储器使用,因此无法将git部署到NAS,但是无妨 差生文具多,NAS不行 Jetson来凑。

在这里插入图片描述

上一次讲了 Windows如何优雅使用Terminal,但是Windows的Terminal终究不如Linux系统的舒服,因此Windows作为生活学习的主力,Jetson开发板配置的Ubuntu20.04作为 学习Linux的主力。

1、jetson 部署 git服务

1.1 安装 git

一般情况下,jetson安装完系统,会自动安装 git,可以通过 git --version 查看安装版本,也可以通过以下命令安装更新 git

sudo apt-get update
sudo apt-get install git		# 初次安装 git

1.2 创建 git 用户

非必要性,如果你也跟我一样,是自己使用,其实都无所谓

sudo adduser git

根据自己实际情况填写用户信息,密码需记牢,git账号的信息,可以使用默认设置

创建完 git用户之后,可能存在以下错误:

git is not in the sudoers file. This incident will be reported.

这是因为没有给 git 用户加入到 sudo 配置中,因此在切换到 git用户时,无法使用 sudo 命令

首先修改下 sudoers 的写入权限

chmod u+w /etc/sudoers

然后编辑 sudoers

vim /etc/sudoers

找到 root ALL=(ALL) ALL,在其下方添加

root ALL=(ALL) ALL
git  ALL=(ALL) ALL		# 将 git 改为你自己的用户名

添加完成后,再将 sudoers的权限给修改回去

chmod u-w /etc/sudoers

这样 git 用户就也可以调用 duso 命令了

1.3 创建 git 仓库

目前需要先创建一个空的仓库,然后才能够进行上传,后续我再测试下直接上传不存在的仓库

选择一个 保存 git仓库的路径,在此以 /git/ 为例

sudo su - git
mkdir /git/demo.git
cd /git/demo.git
git init --bare				# 初始化仓库

1.4 修改仓库路径权限

其实创建 git 用户就是避免其他用户不小心修改 其中的仓库,因此创建一个新的用户更加安全,另外,也可以给仓库路径设置 用户权限,是其他用户无法访问,这样就保证了数据的安全性

可以通过以下命令修改 仓库的访问权限

sudo chown -R git:git /git/

其中 -R 是为了保证 /git 路径的权限支持向下兼容,不至于每次都修改权限;
git:git 表示的是 git用户以及 git组,可以通过 id git 查看 git用户所属的 组,其中 uid 是用户名,gid是组名,grous 是用户 git 同时也附加与其他组

uid=1001(git) gid=1001(git) groups=1001(git),29(audio),44(video),103(render),113(i2c),130(gdm),999(gpio),996(weston-launch)

通过 ll 命令就可以查看当前路径下的权限信息,可以看到 git用户已经有了 ./ 以及其中的 DeepSort_Pytorch.git/ 仓库的权限了,并且其他非root用户没有权限

git@ubuntu:/git$ ll
total 12
drwxr-xr-x  3 git  git  4096 Jan 16 02:39 ./
drwxr-xr-x 20 root root 4096 Jan 16 02:18 ../
drwxrwxr-x  7 git  git  4096 Jan 16 02:43 DeepSort_Pytorch.git/

至此,jetson 已经配置好了 git 服务,只差代码上传

1.5 配置 SSH

博主因为是使用的 windows系统进行上传,通常使用 ssh 连接 jetson,因此还需要再配置下 SSH

sudo apt-get install openssh-server

然后,为 git用户配置 SSH

sudo su - git
mkdir ~/.ssh
touch ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

此处需要在 windows系统上生成下 ssh 公钥,方法如下

ssh-keygen -t rsa -C "youremail@example.com"

密钥类型可以用 -t 选项指定,如果没有指定则默认生成用于SSH-2的RSA密钥,这个命令使用的是rsa。

完成之后一般会保存在 C:\Users\Administrator\.ssh\id_rsa ,可以通过 txt文本打开

将其公钥保存至 jetson:~/.ssh/authorized_keys 文件中,这样就不需要每次输入用户名/邮箱名 和 密码了

1.6 启动 git 服务

退出 git 用户,并重启 SSH 服务

exit
sudo service ssh restart

至此,Git 服务器应该已经在 Jetson 上成功部署。


2、Windows 连接 jetson

因为使用的局域网,没有购买公网ip,因此也就无法外网访问了,虽然损失了方便性,但是保证了安全,而且出发点就是在家自用,基本需求满足即可,后续有外网访问的需求再说。

windows连接 ubutnu 一般直接采用 ssh连接,连接方式为 ssh <username>@<jetson_ip>


3、从 Windows 上传仓库到 Jetson

首先需要确保 jetson 上有对应的 git 仓库,没有的话,先创建一个空仓库 见 1.3。然后对windows本次代码 git 初始化,并提交推送 至 jetson的git服务中

git init
git add .
git commit -m "Initial commit"
git remote add origin git@<jetson_ip>:/git/demo.git

3.1 最后推送

使用以下命令将代码推送到 Jetson git服务器

git push -u origin master

这将把你的本地代码推送到 Jetson Git 服务器的 master 分支。如果这是第一次推送,可能需要输入 Git 用户的用户名和密码。

如果你使用 SSH 密钥进行身份验证,确保你的 SSH 密钥已经添加到 Jetson Git 服务器的 ~/.ssh/authorized_keys 文件中。

3.2 仓库拉取

如果在 Jetson 上有其他人推送了更改,你可以使用以下命令拉取这些更改:

git pull				
# 或
git pull origin master

这会将 Jetson Git 服务器上的最新更改拉到你的本地仓库。

文章来源:https://blog.csdn.net/ViatorSun/article/details/135633322
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。