Ssh

ssh-keygen 無法驗證密鑰“未知選項–Y”

  • September 19, 2022

上下文:我正在嘗試在 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

您的 OpenSSH 版本太舊。

Debian 10 似乎有 version 7.9p1,但是直到 version 才出現(以及對簽名和驗證的支持)的-Y論點。ssh-keygen``8.0p1

Debian 10 即將報廢。一種解決方案是更新到更新的版本。

另一種解決方案是使用 Docker 或 Podman 之類的容器執行時來執行更新版本的ssh-keygen(例如,debian:11映像包括 OpenSSH 8.4p1)。

對於來自 windows 的 ssh,在 cmd 中執行此命令(以管理方式打開):

notepad ~/.ssh/

之後,輸入選項卡完成,如:

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

在打開的記事本視窗中,刪除您嘗試連接的伺服器 IP 行。保存在記事本中並關閉它。再次SSH,它將被修復。

在 Linux 上:

vim ~/.ssh/known_hosts

和窗戶一樣。

引用自:https://serverfault.com/questions/1111006