是否可以在 2 台机器上使用相同的 ssh 私钥/公钥对来访问 git 存储库?

Posted

技术标签:

【中文标题】是否可以在 2 台机器上使用相同的 ssh 私钥/公钥对来访问 git 存储库?【英文标题】:Is it possible to use the same ssh private/public key pair on 2 machines to access a git repository? 【发布时间】:2010-11-12 20:34:15 【问题描述】:

我最近设置了一个内部 git 存储库服务器,并安装了 gitosis 作为管理工具并启动并运行它。通过 git:// 协议提供只读访问权限,通过 gitosis 使用 ssh 公钥提供写访问权限。

我的一位开发人员已被授予使用在他的桌面工作站上生成的公钥访问他的项目的权限。

他现在希望使用相同的 ssh 密钥对从他的笔记本电脑访问该存储库。他已将整个 .ssh 文件夹复制到他的笔记本电脑中,并尝试从存储库中克隆但没有成功。

这是一个有效的尝试吗?

是否需要为每台机器生成一个 ssh 密钥对?这看起来很奇怪,因为它实际上需要将每台机器的用户名添加到 gitosis 配置中。

任何帮助将不胜感激。

【问题讨论】:

开发者的用户名在两台客户端机器上是否相同? 不,他们不是,但我认为在这种情况下并不重要。正在使用的 git clone 命令在命令行中指定 git@。所以访问是通过存储库端的通用 git 用户进行的。 我们已经证明将 ssh 密钥复制到其他机器确实可以按照建议进行。我们现在认为这可能更多是网络/*** 问题。感谢您的回答。 顺便说一句,私钥基本上是一个美化的密码。密码来自哪台机器并不重要。 【参考方案1】:

是的,我认为你可以。

我有类似的东西。两台机器,一台 Intel(台式机),另一台 Sparc。我可以登录到两台机器,并使用 SSH 访问和在 Intel 机器上生成的相同密钥对访问同一个 CVS 服务器(另一台机器)。

确保在复制私钥时正确设置 .ssh 目录的权限 (0700),并且您的主目录不能是组或全局可写的。 id_rsa 应该只有用户读取权限 (0400)

【讨论】:

另外,根据我的经验:我必须将公钥和“”一个空格加上我的用户名/电子邮件复制到另一台机器上的 id_rsa.pub 文件中。注意:我还首先在 Snow Leopard Mac OS 10.6.4 上的 .ssh 目录中运行了 ssh-keygen。示例:[..some cryptography stuff...]== [youremail@email.com] *上面的括号表示替换其中的文本 有趣的是,我从来不用修改 id_rsa.pub。一定是 OSX 异常。【参考方案2】:

是的,这是完全合法的。 ssh 密钥不关心它们是在哪里生成的,一次在多台机器上都可以。

尝试为 ssh 客户端提供“-v”或“-vv”选项(用于详细输出)并检查服务器的 ssh 日志以调试问题。

【讨论】:

【参考方案3】:

SSH 密钥对是独立于机器的,这意味着您可以在一台机器上创建一个 SSH 密钥对,并可以在多台机器上部署相同的 SSH 密钥对。这是正确的事情,你必须这样做。

此外,Git 使用 SSH 进行传输,因此您可以在具有相同 SSH 密钥对的两台机器上克隆/下载 Git。

【讨论】:

以上是关于是否可以在 2 台机器上使用相同的 ssh 私钥/公钥对来访问 git 存储库?的主要内容,如果未能解决你的问题,请参考以下文章

复制一台虚拟机需要重新配置ssh服务吗

linux 2台机器之间建立ssh互信

ssh两台机器建立信任关系无密码登陆

不使用密码的SSH连接

SSH 使用公钥(不是私钥)进行身份验证

CentOS系统多台机器免密互相可以登录