shv*_*hvv 6 linux ssh ssh-agent ubuntu
我有三个 SSH 密钥对,可以通过以下方式找到ssh-add -L;远程服务器接受两个密钥,但只有一个密钥可用于 GitHub,我想通过代理转发克隆一个 GitHub 存储库(托管限制阻止部署密钥工作)。
id_rsa通过 列出的第一个密钥 [ ] ssh-add -L,忽略我的-i命令,因此代理转发仅在删除密钥后才有效id_rsa:
ssh -A -tt -i ~/.ssh/id_rsa_github user@ip 'ssh -T git@github.com'
Run Code Online (Sandbox Code Playgroud)
IdentityFileand IdentitiesOnlyto ~/.ssh/config,但也不成功这是正常行为吗?如何强制 SSH 使用特定密钥?
我认为这很正常。代理已经知道一些密钥。then-i是 的一个选项ssh,它不会直接影响代理。当询问时,ssh可以向代理添加密钥,但没有直接的方法可以删除密钥或更改其顺序。此外,该代理旨在为许多客户提供服务。其中一些可能需要您想要从该特定ssh连接中“隐藏”的密钥。你需要一种稍微不同的方法。
将本地作为专用ssh代理的子进程运行,然后将所需的密钥添加到代理中。这样,密钥将是相关代理唯一知道的密钥。使用通用代理(如果有)的进程不会受到影响。ssh
ssh-agent ssh -A -tt -o AddKeysToAgent=yes -i ~/.ssh/id_rsa_github user@ip \'ssh -T git@github.com\'\nRun Code Online (Sandbox Code Playgroud)\n\n\n\n\n\n
command [arg ...]
\n如果给出命令(和可选参数),则该命令将作为代理的子进程执行。当命令行上给出的命令终止时,代理会自动退出。[\xe2\x80\xa6]
\n[\xe2\x80\xa6] 代理启动一个命令,在该命令下导出其环境变量 [\xe2\x80\xa6]
\n[\xe2\x80\xa6]
\n[\xe2\x80\xa6]
\nssh(1)查看这些环境变量并使用它们建立与代理的连接。代理最初没有任何私钥。
\nssh-add(1)使用或 中设置的ssh(1)时间添加密钥。[\xe2\x80\xa6]AddKeysToAgentssh_config(5)
\n\n\n\n
-o option
\n可用于以配置文件中使用的格式给出选项。
\n\n\n
AddKeysToAgent
\n指定键是否应自动添加到正在运行的ssh-agent(1). 如果将此选项设置为yes并从文件加载密钥,则密钥及其密码短语将以默认生命周期添加到代理中,就像通过 一样ssh-add(1)。
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |