我想使用多个私钥连接到不同的服务器或同一服务器的不同部分(我的用途是服务器的系统管理、Git管理和同一服务器中的正常Git使用)。我尝试简单地将密钥堆叠在id_rsa文件中,但没有用。
显然,要做到这一点,一个简单的方法是使用命令
ssh -i <key location> login@server.example.com
这很麻烦。
有什么建议可以让你做这件事更容易一些吗?
我想使用多个私钥连接到不同的服务器或同一服务器的不同部分(我的用途是服务器的系统管理、Git管理和同一服务器中的正常Git使用)。我尝试简单地将密钥堆叠在id_rsa文件中,但没有用。
显然,要做到这一点,一个简单的方法是使用命令
ssh -i <key location> login@server.example.com
这很麻烦。
有什么建议可以让你做这件事更容易一些吗?
当前回答
在Ubuntu 18.04 (Bionic Beaver)上没有什么可做的。
成功创建第二个SSH密钥后,系统将尝试为每个连接查找匹配的SSH密钥。
你可以用下面这些命令创建一个新密钥:
# Generate key make sure you give it a new name (id_rsa_server2)
ssh-keygen
# Make sure ssh agent is running
eval `ssh-agent`
# Add the new key
ssh-add ~/.ssh/id_rsa_server2
# Get the public key to add it to a remote system for authentication
cat ~/.ssh/id_rsa_server2.pub
其他回答
对密钥使用ssh-agent。
您可以尝试这个sshmulti npm包来维护多个SSH密钥。
您可以在~/中创建一个名为config的配置文件。ssh文件夹。它可以包含:
Host aws
HostName *yourip*
User *youruser*
IdentityFile *idFile*
这将允许您像这样连接到机器
ssh aws
从我的.ssh/config:
Host myshortname realname.example.com
HostName realname.example.com
IdentityFile ~/.ssh/realname_rsa # private key for realname
User remoteusername
Host myother realname2.example.org
HostName realname2.example.org
IdentityFile ~/.ssh/realname2_rsa # different private key for realname2
User remoteusername
然后您可以使用以下连接:
ssh myshortname
SSH我的其他
等等。
我曾经遇到过这个问题,当时我有两个Bitbucket帐户,想要为两个帐户存储单独的SSH密钥。这对我来说很管用。
我创建了两个单独的ssh配置,如下所示。
Host personal.bitbucket.org
HostName bitbucket.org
User git
IdentityFile /Users/username/.ssh/personal
Host work.bitbucket.org
HostName bitbucket.org
User git
IdentityFile /Users/username/.ssh/work
现在当我必须从我的工作帐户克隆一个存储库时,命令如下所示。
git clone git@bitbucket.org:teamname/project.git
我必须修改这个命令:
git clone git@**work**.bitbucket.org:teamname/project.git
同样,从我的个人帐户克隆命令必须修改为
Git克隆git@personal.bitbucket.org:name/personalproject.git
更多信息请参考这个链接。