如何将Tom的SSH公钥添加至gituser的Git仓库以获取推送权限
解决方案
一、正确配置Tom的SSH公钥访问gituser账户
1. 正确使用ssh-copy-id命令
ssh-copy-id的<server>参数格式为目标用户名@主机地址,由于Tom和gituser在同一台机器上,主机地址可以用localhost或者机器的hostname(比如D-82I)。执行以下命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub gituser@localhost
执行时输入gituser的密码,公钥会自动添加到gituser的~/.ssh/authorized_keys文件中(如果.ssh目录不存在,命令会自动创建并设置正确权限)。
2. 手动配置备选方案
如果ssh-copy-id无法正常执行,可手动完成配置:
- 切换到gituser账户,创建并配置
.ssh目录权限:
su - gituser mkdir -p ~/.ssh chmod 700 ~/.ssh touch ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys exit
- 以Tom身份将公钥追加到gituser的授权文件:
cat ~/.ssh/id_rsa.pub | sudo tee -a /home/gituser/.ssh/authorized_keys
二、解决Git远程仓库关联错误
Tom执行git remote add origin时提示fatal: not a git repository,是因为当前目录未初始化Git仓库,按以下步骤操作:
方式1:初始化本地仓库并关联远程
# 创建本地项目目录并进入 mkdir my_local_project cd my_local_project # 初始化Git仓库 git init # 关联远程裸仓库(主机地址替换为实际hostname或localhost) git remote add origin gituser@localhost:/home/gituser/project.git # 首次提交并推送 echo "项目初始化" > README.md git add README.md git commit -m "initial commit" git push -u origin main
方式2:直接克隆远程裸仓库
git clone gituser@localhost:/home/gituser/project.git cd project # 克隆后即可直接进行代码提交和推送操作
内容的提问来源于stack exchange,提问作者edge selcuk
相关产品推荐
相关产品推荐

