我在 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