我想为我想要SSH的家庭服务器生成一组密钥,所以我这样做ssh-keygen -t rsa
,但后来我收到一条消息:id_rsa already exists. Overwrite (y/n)?
好吧,我不想覆盖,因为我现在使用的密钥用于SSH连接到我大学的服务器,每次我想切换时都必须再次完成所有垃圾操作.是否有一种简单的方法来附加密钥?
我尝试了一个教程(我找不到),提示使用cat
命令,但我很丢失.似乎解决方案非常简单,我只是没有看到.
您可以在两台服务器上使用相同的公钥.如果你不想这样做,只需指定一个不同的位置~/.ssh/id_rsa
时,ssh-keygen
在此之前提示您,并与代理使用它:
% ssh-agent sh # Replace with your favourite shell. $ ssh-add ~/.ssh/id_rsa_2 $ ssh somewhere $ exit %
ssh-agent
也可以在不启动新shell的情况下使用eval $(ssh-agent)
.
您可以通过在目录下的主目录中使用配置文件来实现此目的.ssh
:
像往常一样生成密钥:
ssh-keygen -t rsa
不要覆盖默认值(通常id_rsa
).而是创建一个新名称.这将使用您的密钥创建一个单独的文件.
在〜/ .ssh中创建一个config
包含以下内容的文件:
Host * (asterisk for all hosts or add specific host) AddKeysToAgent yes UseKeychain yes IdentityFile <key> (e.g. ~/.ssh/yourKey)
钥匙现已添加到钥匙串中,可以使用!
-
您可以在配置中使用多个IdentityFiles(Mac示例):
Host * AddKeysToAgent yes UseKeychain yes IdentityFile ~/.ssh/id_rsa_private_server IdentityFile ~/.ssh/id_rsa_github IdentityFile ~/.ssh/id_rsa_work_server