如何为同一主机存储 2 个不同的 SSH 私钥?我已经尝试在 /etc/ssh/ssh_config 中为同一主机使用不同的键输入 2 个条目,并且我还尝试将两个键放在同一个文件中并从一个主机设置中引用它,但是两者都不起作用。
更多细节:我正在运行 Ubuntu 服务器 (12.04),我想通过 SSH 连接到 GitHub 以下载我的项目的最新源代码。有多个项目在同一台服务器上运行,每个项目都有一个 GitHub 存储库,其中包含自己独特的部署密钥对。所以主机总是相同的 ( github.com
) 但密钥需要不同,具体取决于我使用的存储库。
/etc/ssh/ssh_config
我尝试过的不同版本:
Host github.com
IdentityFile /etc/ssh/my_project_1_github_deploy_key
StrictHostKeyChecking no
Host github.com
IdentityFile /etc/ssh/my_project_2_github_deploy_key
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)
这两个键都在同一个文件中:
Host github.com
IdentityFile /etc/ssh/my_project_github_deploy_keys
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)
我也没有运气。任何帮助将不胜感激!
我运行Ubuntu 12.04精确,一头大粪(Django的,UNIX,Nginx的&Gunicorn)的环境和我的应用程序(以及各种配置文件)存储在一个python虚拟环境中/srv
,使www-data
用户可以访问。
nginx 和 gunicorn 进程都以www-data
.
我的 Web 应用程序需要安全凭据,我将其存储在environment.sh
文件中。该文件包含各种导出,并source
在 gunicorn 进程执行之前运行。
我担心的是environment.sh
文件的位置及其权限。可以将此文件存储/srv
在www-data
有权访问它的文件夹中吗?或者它应该由 root 在其他地方存储和拥有,例如/var/myapp/environment.sh
?
此外,对于www-data
用户,如果我的任何 Web 进程(以 运行www-data
)受到损害并且有人获得了对它们的访问权限,这是否意味着用户可能会读取系统上的任何文件,即使他们无法写入?包括我的安全密钥?