统信UOS上Git报“Permission denied (publickey)”或“command not found”,需先确认系统系列(D系用apt、A系用dnf)安装Git,再配置user.name/email,生成ed25519密钥并添加至Gitee/GitLab,最后用ssh -T git@gitee.com验证。

在统信UOS上无法执行git clone或git push命令,提示“Permission denied (publickey)”或“command not found”,说明Git未安装或SSH密钥未生成/未添加到远程平台。必须先确认系统类型再选择对应安装路径,否则后续所有操作都会失败。
确认UOS系统系列并检查Git是否已存在
打开终端,输入以下命令验证当前环境:【git --version】。若返回类似“git version 2.42.0”的输出,说明Git已预装;若提示“command not found”,继续下一步。
再运行cat /etc/os-version 2>/dev/null | grep -i "series",观察输出中是否含“D”或“A”:含“D”(如D20、D23)为Debian系,走APT安装;含“A”(如A23)为CentOS/RHEL系,走DNF安装。
这一步跳过会导致后续包管理器命令报错,比如在D系列误用dnf会提示“command not found”。
安装Git工具(按系统系列二选一)
方法一:D系列UOS(专业版20/23、个人版等)用APT安装
执行sudo apt update && sudo apt install git -y。该命令同时更新源列表并静默安装,避免因源过期导致git包不可见。
方法二:A系列UOS(基于CentOS 8/Stream)用DNF安装
运行sudo dnf makecache && sudo dnf install git -y。注意不要漏掉makecache,否则dnf可能无法识别仓库中的git包。
配置全局用户身份信息
Git强制要求提交前声明作者身份,否则git commit会直接报错退出。
第一步:设置用户名(必须与Gitee/GitLab账号一致)
git config --global user.name "张三"
|Git删除了文件,但还会在Git 仓库历史中遗留。 - 想要从 Git 历史移除敏感信息(密码、密钥、token、私钥) - 想要删除意外提交的大文件 - 想要重写 Git 历史、移除特定文件的所有痕迹 - 提到 "force push"、"重写 commit 历史" - 需要从所有分支、所有 tag 中删除某个文件
第二步:设置邮箱(必须是注册时绑定的邮箱)
git config --global user.email "zhangsan@gitee.com"
第三步:验证配置是否写入~/.gitconfig
cat ~/.gitconfig | grep -A 2 "\[user\]"
如果输出中没有user.name和user.email两行,说明配置失败,需重新执行前两步。
生成并部署SSH密钥对
HTTPS方式每次push都要输密码,SSH则能免密直连。但必须确保私钥不被导出、公钥正确粘贴到远程平台。
执行ssh-keygen -t ed25519 -C "zhangsan@gitee.com",全程回车使用默认路径(~/.ssh/id_ed25519)。不要设密码,否则每次git操作都会卡住等待输入。
将公钥内容复制到剪贴板:cat ~/.ssh/id_ed25519.pub | xclip -sel clip(若提示xclip未找到,改用cat ~/.ssh/id_ed25519.pub,手动全选终端输出内容)。
登录Gitee或GitLab,在「设置→SSH公钥」页面粘贴整段内容(以ssh-ed25519 AAAA...开头,以邮箱结尾),标题可填“UOS-ZhangSan”。【切勿截断末尾邮箱,否则认证失败】
测试连接有效性:ssh -T git@gitee.com。首次运行会提示是否信任主机,输入yes;成功时返回“Hi ZhangSan! You've successfully authenticated…”。










