同时使用 2 个密钥对进行 ssh 身份验证

同时使用 2 个密钥对进行 ssh 身份验证

我在 Raspberry Pi 上运行了一个 ssh 服务器。我的 ubuntu 笔记本电脑上只有 1 个用户可以访问此 ssh 服务器。

我使用以下命令创建了 2 对 ssh 密钥:

ssh-keygen -t ed25519 -o -a 100 
ssh-keygen -t rsa -b 4096 -o -a 100

这 2 个公钥已附加到 ssh 服务器上的 ~/.ssh/authorized_keys。

当我查看authorized_keys文件时,它如下所示:

ssh-ed25519 ...
ssh-rsa ...

我想要的是双重身份验证,即在建立 ssh 连接之前验证两个密钥对。就我而言,我注意到只要验证了 1 个密钥对,就可以连接。

请协助。

答案1

是的,你可以将你的服务器配置为需要多个公钥,如AuthenticationMethods sshd_配置关键词:

如果 publickey 方法列出多次,sshd(8) 会验证已成功使用的密钥不会被重复使用进行后续身份验证。例如,“publickey,publickey” 需要使用两个不同的公钥进行成功身份验证

因此,要在名为测试,可以在文件末尾添加以下内容sshd_config(并重新加载配置):

Match User test
    AuthenticationMethods publickey,publickey

~test/.ssh/authorized_keys然后像平常一样添加两个公钥。

在客户端,如果密钥不容易获得,例如正在运行ssh 代理应该提供两个键作为参数,例如:

ssh -i ~/.ssh/id_rsa -i ~/.ssh/id_ed25519 test@server

相关内容