我有两个用户的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回购。
之后,我切换到我的sudo用户,将id_rsa和id_rsa.pub复制到sudo用户主目录/home/myuser/.ssh/,并尝试访问repo,它是在根帐户和系统下配置的,提示我没有访问它。我不明白为什么会这样。有谁能引导我正确设置两个系统用户使用相同的私钥访问github repo?
发布于 2020-02-11 06:51:54
首先,如果可能的话,不要以根的形式生成或做任何事情。根应该仅用于系统任务。
其次,如果您将一个密码保护的SSH密钥添加到作为root用户运行的ssh-gent中,那么当您在sudo user中使用相同的SSH密钥时,用户可能无法访问所述代理。
尝试并使用eval "$(ssh-agent -s)"运行sudo user,以便以user的形式运行代理。
但更普遍的情况是,所有序列都应该直接作为一个本地帐户user来执行。
复制私用SSH密钥不是一个好做法。
我有一个帐户,并希望将其设置为在两个linux用户下使用相同的github帐户。
然后:
user1下,生成ssh键:
-t rsa -P "“-m PEM(默认为~user1/.ssh/id_rsa/id_rsa.pub)
user2下,生成ssh键:
-t rsa -P "“-m PEM(默认为~user2/.ssh/id_rsa/id_rsa.pub)
将两个SSH公钥添加到您唯一的GitHub帐户:参见"向GitHub帐户添加新的SSH密钥“。
你可以添加多少你想要的钥匙。
然后,您将能够从本地user1或user2中作为该SSH帐户进行身份验证,每个帐户都使用自己的SSH密钥(不需要跨本地帐户共享私有SSH密钥)。
在这种情况下不需要~/.ssh/config。
发布于 2020-02-11 15:47:19
我通过以下步骤解决了问题。·
现在,我的服务器上有两个sudo用户,每个用户的ssh密钥对都在各自的/home/{USER}/.ssh目录中,每个用户的pub密钥都添加到github帐户中。工作也很好。感谢大家帮助我们找到解决方案
发布于 2020-02-11 07:21:17
最简单的方法是创建ssh配置文件。
创建SSH配置文件
当您有多个标识文件时,创建一个SSH配置文件机制来为您的各种身份创建别名。 您可以使用许多参数和不同的方法构造SSH配置文件。 本例中使用的别名条目的格式是: 主机别名HostName github.com IdentityFile ~/..ssh/identity 要为两个标识(workid和personalid)创建一个配置文件,您可以执行以下操作:
Open a terminal window.
Edit the ~/.ssh/config file. 如果您没有配置文件,请创建一个配置文件。
为每个标识组合添加别名,例如:
Host workid
HostName github.com
IdentityFile ~/.ssh/workid
Host personalid
HostName github.com
IdentityFile ~/.ssh/personalid重要信息:
不要忘记加载到您的GitHub帐户的密钥。
https://stackoverflow.com/questions/60162669
复制相似问题