ssh-keygen 无法验证密钥“未知选项——Y”

ssh-keygen 无法验证密钥“未知选项——Y”

上下文:我正在尝试在 Gitea 实例上验证我的公钥。Gitea 为我提供了一个令牌来生成签名;说明如下:

echo -n 'TOKEN_PROVIDED' | ssh-keygen -Y sign -n gitea -f PATH_TO_PUBLIC_KEY

当我这样做时,ssh-keygen 回复

unknown option -- Y

我之前已经能够在我的个人计算机上进行验证,但似乎我登录的服务器上的 ssh-keygen 有一个不同的 ssh-keygen,因为它似乎缺少该标志。

  • 我应该使用不同版本的 ssh-keygen 吗?
  • 我还能怎样验证我当前的 ssh-keygen 版本?

特定的堆栈信息(尽管我希望答案足够通用以适用于其他地方):

  • Debian 10

答案1

您的 OpenSSH 版本太旧。

Debian 10 似乎有版本7.9p1,但是直到版本才出现-Y参数(以及对签名和验证的总体支持) 。ssh-keygen8.0p1

Debian 10 即将终止使用。一种解决方案是更新到较新的版本。

另一种解决方案是使用 Docker 或 Podman 等容器运行时来运行较新版本ssh-keygen(例如,debian:11映像包含 OpenSSH 8.4p1)。

答案2

对于 Windows 中的 ssh,在 cmd(以管理员身份打开)中执行此命令:

notepad ~/.ssh/

之后输入 tab 来完成,例如:

notepad C:\Users\User\.ssh\known_hosts

在打开的记事本窗口中,删除您尝试连接的服务器 IP 行。在记事本中保存并关闭。再次 ssh,它将被修复。

在 Linux 上:

vim ~/.ssh/known_hosts

与窗户相同。

相关内容