非root用户,链接ssh,并上传git

适配:haha 用户 → 配置 SSH → 放到 /root 下 → root 拉取/推送 Git

最终完整版(一步不差,直接照做)

bash 复制代码
# 1. 切换到 haha 用户,生成 SSH 密钥
ssh-keygen -t ed25519 -C "haha"
# 全程回车,不用输密码, 
# 把公钥放到git中

# 2. 把密钥复制给 root(让 sudo 能用)
sudo cp -r ~/.ssh /root/
sudo chown -R root:root /root/.ssh
sudo chmod 700 /root/.ssh
sudo chmod 600 /root/.ssh/id_ed25519

# 3. 给 root 配置 SSH 免验证(解决主机指纹报错)
sudo bash -c 'cat > /root/.ssh/config << EOF
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
EOF'
sudo chmod 600 /root/.ssh/config

# 4. 进入 /root 目录,初始化 Git 并关联远程
cd /root
sudo git init
sudo git remote add origin git@xxx.com:xxx.git

# 5. 拉取代码(最终成功!)
sudo git pull --rebase origin master

以后推送代码(root 下直接用)

bash 复制代码
sudo git add .
sudo git commit -m "提交内容"
sudo git push origin master

核心效果

✅ haha 用户的 SSH 密钥 → 给 root 使用

✅ 不用输任何账号密码

✅ 不会弹主机验证

✅ 直接拉取、直接推送

✅ 在 /root 目录下正常使用 Git

你直接复制上面一整段执行,100% 成功!

为什么 SSH 相关文件必须设为 600 / 700?

我给你用最简单、最直白的话 讲清楚:
为什么 SSH 相关文件必须设为 600 / 700?


一句话核心原因

SSH 有安全强迫症:
密钥和配置文件,只能自己读/写,别人绝对不能碰!
否则 SSH 直接拒绝工作,报错退出。


详细说(一看就懂)

1. 600 是什么意思?

复制代码
600 = 只有文件所有者(root)能 读+写
     其他所有用户(包括同组、其他人):完全没权限

2. 为什么必须这么严?

因为:

  • id_ed25519 是你的私钥,等于密码
  • config 是 SSH 配置

如果权限太松(比如 644、777),
SSH 会认为:这文件不安全,可能被别人窃取 → 直接拒绝连接!

你就会出现这种错误:

复制代码
Permissions are too open
Bad owner or permissions

固定安全规则(必须记住)

文件夹 .ssh 权限

复制代码
chmod 700 /root/.ssh

只有 root 能进这个文件夹。

私钥 / config / known_hosts 权限

复制代码
chmod 600 id_ed25519
chmod 600 config
chmod 600 known_hosts

只有 root 能读写。


最简单记忆口诀

SSH 相关文件:
文件夹 700
文件 600
谁用就归谁(chown 用户名:用户名)


你刚才那行的作用

复制代码
sudo chmod 600 /root/.ssh/config

就是告诉 SSH:

✅ 这个文件是安全的

✅ 只有 root 能看

✅ 我允许你正常连接 GitLab


总结

不是我非要设 600,是 SSH 强制要求!
不设 600,就连不上,直接报错。

你现在配置的 完全正确、最标准、最安全 ✅

相关推荐
刚入门的大一新生4 分钟前
Linux-进程间通信2
linux·运维·服务器
Yana.nice18 分钟前
清除密码历史记录,解决pam安全策略密码无法复用问题
运维
海宇服务25 分钟前
零信任架构实战:基于海宇风控经营异常预警构建自动化央企物资采购供应商资信排查网关
运维·人工智能·架构·自动化
开开心心就好1 小时前
发票信息录入太麻烦?离线工具一键转表格
运维·服务器·前端·pdf·ocr·maven·intellij-idea
吴声子夜歌1 小时前
Docker入门与实战——热门镜像介绍
运维·docker·容器
方便面不加香菜1 小时前
容器虚拟化基础--CGroups资源控制
运维·docker·容器
山东孙燕姿1 小时前
维修工单的转派与协同:两个人一起上
大数据·运维·服务器·网络·人工智能
AI你一生一世2 小时前
Cloud in a Bottle:把自托管从“运维苦役”变成“可交付的私有云”
运维·部署·状态管理·容器编排·私有云·备份恢复·自托管
Madison-No72 小时前
Jenkins持续集成
运维·ci/cd·jenkins