我想为我想要SSH的家庭服务器生成一组密钥,所以我这样做 ssh-keygen -t rsa
,但后来我收到一条消息: id_rsa already exists. Overwrite (y/n)?
好吧,我不想覆盖,因为我现在使用的密钥用于SSH连接到我大学的服务器,每次我想切换时都必须再次完成所有垃圾操作。是否有一种简单的方法来附加密钥?
我尝试了一个教程(我找不到),暗示了一些关于使用的东西 cat
命令,但我很丢失。似乎解决方案非常简单,我只是没有看到。
我想为我想要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/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
如果我没记错的话,我通过卸载Cygwin并使用命令行修复了这个问题。
你可以这样做 MiniTech移动 建议并在两台服务器上使用相同的SSH公钥。为此,请打开该文件 ~/.ssh/id_rsa.pub
在文本编辑器中,完全复制文件的内容而不添加任何新空格或换行符,并将其添加到要连接的服务器。如果服务器上的用户名是IP地址为123.45.56.78的“user”,请使用命令“ssh-copy-id user@123.45.56.78”,或者您可以使用:
cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
我和你有同样的问题,我解决了它。
在终端是:
“输入要保存密钥的文件(/home/you/.ssh/id_rsa):”
而不是打 输入 或写作 /home/you/.ssh/id_rsa
, 你写 /home/you/.ssh/id_rsa1
。