SSH认证无需登录

SSH认证无需登录

我在我的机器上生成了一个 SSH 密钥对,而其他方拥有我的公钥。我有没有办法向对方证明我拥有相应的私钥?当然这是可能的,因为它是在使用密钥建立 SSH 连接时发生的。我想问是否可以使用现有工具仅执行 SSH 身份验证,而不提供 shell 访问权限。

答案1

是的,这是可能的。最新版本的 OpenSSH 支持数据签名。您可以按以下方式执行此操作:

  1. 另一方(验证者)以文件形式向您发送随机质询。
  2. 您运行ssh-keygen -Y sign -f ~/.ssh/id_ed25519 -n proof challenge-file(调整密钥和文件名)。
  3. 您发送challenge-file.sig给验证者并告诉他们使用名称空间进行验证proof
  4. 验证程序ssh-keygen -Y verify -n proof使用适当的参数运行来验证签名。

相关内容