linux - 为什么我在 git clone 上询问密码?

标签 linux macos git ssh https

当我在 mac 上运行它时,一切正常:

git clone git@test.test-project.com:my_project

当我在家运行它并将我家的 id_rsa.pub key 复制到 authorized_keys 中的 ssh 项目时,ssh 连接正常,但是克隆 git repo 需要密码,为什么?

重现的完整步骤:

git config --global user.name 'User Surname'
git config --global user.email 'user@email.com'
ls -al ~/.ssh # shows nothing 
ssh-keygen -t rsa -C "user@example.com"
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa
sudo apt-get install xclip
xclip -sel clip < ~/.ssh/id_rsa.pub

从剪贴板粘贴 id_rsa.pub 到 github account -> settings -> ssh keys -> add 回车,添加成功

ssh -T git@github.com

您好用户!您已成功通过身份验证,但 GitHub 不提供 shell 访问。 粘贴相同的 id_rsa.pub 到 evernote

在我工作的 mac 上,从 evernote 复制它,然后连接到 ssh:

ssh portal@my-server.com
ee ~/.ssh/authorized_keys

将 evernote 的 id_rsa 粘贴到文件末尾并保存。

cd my-rails-app/repo
git ls-remote

从标准输出复制第一个字符串的一部分:

From git@test.test-project.com:my_project

从家里华硕连接到ssh

ssh portal@my-server.com

一切正常

git clone git@test.test-project.com:my_project

->需要密码

最佳答案

当 ssh key 配置不正确时,git clone "git@{host}"会尝试以用户 "git"的身份连接到 {host},因此需要密码。因此,您需要修复/解决 ssh key 问题。

您的工作/Mac/家用计算机是否有不同的用户名?你在使用 gitolite、gitlab 等吗? git 中的 ssh.pub 是如何配置的?

请注意,如果 (1) “当我在我的 mac 上运行它时,一切正常”,然后 (2) “在家里运行它并复制我的 home id-rsa pub授权 key 中 ssh 项目的 key ”,这对 git 没有意义。您只启用了 ssh 登录为“您”,而不是“git”。最简单的解决方案是“从您的 mac”复制您的私有(private) ssh key 并将其复制到您“家庭”计算机的 ~/.ssh 目录中。否则,您只需将您的家庭计算机作为新用户添加到您的 git 服务器的配置中。

关于linux - 为什么我在 git clone 上询问密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26807805/

相关文章:

linux - GNU gettext 故障排除

git - .gitattributes 没有区别,在使用 git difftool 时尝试跳过文件

git - 使用现有存储库中的分支创建 Openshift 应用程序(带有 `rhc create` )

java - Clojure 无法在 OS X 上打印非 ASCII 字符

eclipse - DartEditor和Eclipse的Dart插件之间的区别

c++ - 在 C++ 中使用来自 linux 内核头文件 ioprio.h 的 ioprio_set()

linux - 为什么重定向符号会改变 ls 的行为?

c# - 在 Linux/Mono 中创建 Alchemy WebSocket 时访问被拒绝

objective-c - 如何将 NodeJS 和 node_modules 添加到 Mac 应用程序

Java Mac OS X 应用程序名称更正