OS X,SSH:对不同的服务器使用不同的私钥文件

OS X,SSH:对不同的服务器使用不同的私钥文件

我想使用不同的私钥文件连接到不同的 SSH 服务器(ssh://git-server:port/repository)。该如何管理?SSH 似乎假定私钥文件在 中~/.ssh/id_rsa

答案1

这就是为什么有这个-i选项:

-i identity_file

选择从中读取 RSA 或 DSA 身份验证身份(私钥)的文件。~/.ssh/identity对于协议版本 1,默认为~/.ssh/id_rsa~/.ssh/id_dsa对于协议版本 2,默认为 。

还可以在配置文件中按主机指定身份文件。可以有多个-i选项(并在配置文件中指定多个身份)。

如果你想让这个永久生效,你需要设置你的 SSH 配置文件并设置相应的IdentityFile选项

IdentityFile

指定从中读取用户的 DSA、ECDSA 或 DSA 身份验证身份的文件。[…]

如果您看到类似这样的对话框:

在此处输入图片描述

您需要输入您的用户密码您的 OS X 帐户。不是您的密钥密码,也不是远程 SSH 密码。这是因为他们的身份尚未存储在钥匙串中。

根据本教程,以下命令应该适当地添加它们:

ssh-add -K

答案2

实现此目的的最简单方法是使用 ssh 配置文件。

猫〜/ .ssh /配置

HOST *  
     USER root

您还可以指定特定子域使用特定用户。如果您的笔记本电脑在网络之间移动,这很有用。

HOST 192.168.*.*
     USER homeuser

HOST 10.2.*.*
     USER workuser

您甚至可以通过域进行配置,并对不同的域使用不同的 ssh 密钥。

HOST *.microsoft.com
     USER bill
     IdentityFile ~/.ssh/microsoft/id_rsa

HOST *.apple.com
     USER steve
     IdentityFile ~/.ssh/apple/id_rsa

相关内容