相关疑难解决方法(0)

如何强制 SSH 忽略“主机 *”中列出的特定主机的 IdentityFile?

我的 SSH 配置文件设置为使用该Host *部分中的特定 IdentityFile作为默认密钥。对于一个特定的主机,我想提供一个不同的密钥(并且只有那个密钥,而不是默认密钥)。

我的 ~/.ssh/config 文件如下所示:

Host specialhost
HostName specialhostname.mydomain.com
IdentityFile %d/.ssh/special-key
LogLevel debug
IdentitiesOnly yes 

Host *
IdentityFile %d/.ssh/regular-key
IdentitiesOnly yes 
Run Code Online (Sandbox Code Playgroud)

不管我做什么,或者不管配置文件中部分的顺序如何,我的 SSH 客户端(OS X OpenSSH_6.2p2)首先提供“常规密钥”(服务器接受它,这不是我想要的)。

ssh_config 手册页说明了以下内容IdentityFile

配置文件中可以指定多个身份文件;所有这些身份都将依次尝试。

我不清楚它所指的“序列”,因为该Host *部分中列出的 IdentityFile总是首先提供,即使“specialhost”列在它之前(如上例所示)。这里IdentitiesOnly建议的技巧似乎只与 ssh-agent 提供的密钥相关。一些其他类似的问题还没有得到任何答案。

我想在该Host *部分中保留常规键,因为我将该键与许多其他主机一起使用,并且我不想IdentityFile在每个主机条目中复制该键。

有什么方法可以强制 SSH 仅使用 SSH 配置提供“特殊密钥” (并且无需将我的 IdentityFile 指令复制到所有其他主机)?我可以通过从该Host *部分中取出密钥,将它们添加到代理,然后使用IdentitiesOnly yesfor specialhost来了解如何实现这一点,但我真的更愿意避免使用 ssh-agent,除非没有其他方法。

ssh openssh ssh-keys

6
推荐指数
1
解决办法
2977
查看次数

我可以为同一主机和用户使用多个 SSH 密钥吗?

我在 Bitbucket 上有两个帐户,每个帐户都有一个 SSH 密钥。这是我的~/.ssh/config样子:

Host bitbucket.org
  User git
  IdentityFile ~/.ssh/bitbucket/account1

Host bitbucket.org
  User git
  IdenfityFile ~/.ssh/bitbucket/account2
Run Code Online (Sandbox Code Playgroud)

问题是 SSH 代理似乎无法同时处理同一主机的两个密钥,我必须删除其中一个才能使用另一个。

有解决方法吗?

ssh

4
推荐指数
2
解决办法
4113
查看次数

标签 统计

ssh ×2

openssh ×1

ssh-keys ×1