首页 > 解决方案 > 如何设置 ssh 密钥以从不同用户下的一台机器访问 github

问题描述

我有两个用户的 Ubuntu 服务器

root #root account of the system
myuser #user added to sudo group 

在 root 用户下,我生成了添加到的 ssh 密钥。ssh 目录

/root/.ssh 
         |__ id_rsa
         |__ id_rsa.pub

之后我在同一个 root 用户下运行 ssh-agent

eval "$(ssh-agent -s)"

然后将我的私钥添加到它

ssh-add .ssh/id_rsa

它被正确添加,而不是我将我的公钥添加到 github repo。

之后,我切换到我的 sudo 用户复制id_rsa并切换到我id_rsa.pub的 sudo 用户主目录 /home/myuser/.ssh/,并尝试访问在 root 帐户下配置的 repo,系统提示我无法访问它。我不明白为什么会这样。谁能指导我正确设置两个系统用户通过相同的私钥访问 github repo

标签: gitubuntu

解决方案


首先,如果可能,不要以 root 身份生成或执行任何操作。root 应该仅用于系统任务。

其次,如果您将受密码保护的 SSH 密钥添加到以 root 身份运行的 ssh-gent 中,则一旦您将相同的 SSH 密钥与sudo user.
尝试使用 运行eval "$(ssh-agent -s)"sudo user将代理运行为user.

但更一般地说,所有序列都应该直接作为一个本地帐户完成user
复制私人SSH 密钥不是一个好习惯。

我有一个账号,想设置成在两个linux用户下使用同一个github账号

然后:

  • 在本地帐户 user 下user1,生成一个 ssh 密钥:

    ssh-keygen -t rsa -P "" -m PEM
    

(默认为~user1/.ssh/id_rsa/id_rsa.pub

  • 在本地帐户 user 下user2,生成一个 ssh 密钥:

    ssh-keygen -t rsa -P "" -m PEM
    

(默认为~user2/.ssh/id_rsa/id_rsa.pub

两个SSH 公钥添加到您的唯一 GitHub 帐户:请参阅“将新的 SSH 密钥添加到您的 GitHub 帐户”。
您可以添加任意数量的密钥。

然后,您将能够从您的本地user1或GitHub 帐户进行身份验证user2,每个人都使用自己的 SSH 密钥(无需在本地帐户之间共享私有SSH 密钥)。

在这种情况下不需要 a ~/.ssh/config


推荐阅读