家用计算机上有多个 ssh 密钥

家用计算机上有多个 ssh 密钥

我希望能够使用 ssh 密钥通过 ssh 登录我的 Web 服务器并完全禁用密码验证(以消除来自恶意 IP 地址的暴力破解)。因此,我正在阅读文档:

https://help.ubuntu.com/community/SSH/OpenSSH/Keys 

现在它指示执行以下操作:

mkdir ~/.ssh
chmod 700 ~/.ssh
ssh-keygen -t rsa

这是运行 ssh-keygen 的问题。我已经这样做了,以便生成密钥来连接到我的 github 帐户。所以我的 .ssh 目录已经看起来像这样:

~/.ssh$ ls -l
total 16
-rw------- 1 viggy viggy 1766 Sep  5 20:36 id_rsa
-rw-r--r-- 1 viggy viggy  403 Sep  5 20:36 id_rsa.pub
-rw-r--r-- 1 viggy viggy 4422 Dec 22 11:45 known_hosts

再次运行该命令是否会覆盖 id_rsa 文件?有没有更好的方法来存储这两个密钥?

我的最终目标是不覆盖我的 git 密钥,但生成一个 ssh 公钥和私钥,以便我可以将公钥复制到我的 Web 服务器上的 ~/.ssh/authorized_keys。

答案1

传递-f选项以ssh-keygen指定不同的密钥文件。我建议将~/.ssh/target.id_rsa允许您登录的密钥命名为target,并使用默认名称~/.ssh/id_rsa(如果有)作为默认密钥。

为了确保 SSH 在你连接时总是尝试正确的密钥(如果找不到正确的密钥,它会提示你输入密码,如果密码被禁用,它会拒绝尝试),添加一个IdentityFile指令到~/.ssh/config, 例如:

Host git
HostName git.example.org
User gitter
IdentityFile ~/.ssh/git.example.id_rsa

Host web
HostName mysite.hosting-provider.com
User webmaster
IdentityFile ~/.ssh/hosting-provider.id_rsa

答案2

首先ssh-keygen会问你如何命名文件。只需将其命名为其他名称即可。例如...id_rsa2

相关内容