git - 如何设置 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
解决方案
首先,如果可能,不要以 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
。
推荐阅读
- python - 如何在 python 中使用 mongoengine 在 ListField 上添加索引?
- python - 我编写的霍顿算法效果不佳
- r - 错误:找不到函数“准确性”
- arduino - arduino 和 esp8266 wifi 模块编译问题
- python - 我的代码错误地使用 Python 从 URL 下载了 CSV 文件
- html - 如何使用 CSS Grid 将图像停靠在标题中?
- sql - 创建表时使用 CONSTRAINT 关键字
- php - Laravel 中 $object->attribute 和 $object['attribute'] 的区别
- java - 使用杰克逊屏蔽 json 字段
- vue.js - macOS iTerm2中如何退出如下图形界面?