我有一个系统需要通过 SSH 密钥连接到多个客户端。这是在一个有点遗留的环境中,客户端有不同的操作系统和 SSH 版本。
我在服务器上创建了一个新的 ed25519 主机密钥:
$ ssh-keygen -t ed25519
然后我使用 将该密钥分发给一些客户ssh-copy-id
。尝试连接时,密钥交换不成功,因为 OpenSSH 客户端尝试发送密钥的“-sk”变体,通常保留用于硬件令牌,因此不在我的机器上使用。
以下是连接尝试期间 ssh 调试输出的摘录:
$ ssh -vvv user@targethost
...
debug1: Trying private key: /var/lib/backuppc/.ssh/id_ecdsa
debug3: no such identity: /var/lib/backuppc/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /var/lib/backuppc/.ssh/id_ecdsa_sk
debug3: no such identity: /var/lib/backuppc/.ssh/id_ecdsa_sk: No such file or directory
debug1: Offering public key: /var/lib/backuppc/.ssh/id_ed25519 ED25519 SHA256:/uHOQ+Z2mYCkmHJ14xwskJ6Fhl+Ez2LNswd2pReD4ZA
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /var/lib/backuppc/.ssh/id_ed25519_sk
debug3: no such identity: /var/lib/backuppc/.ssh/id_ed25519_sk: No such file or directory
您可以看到 ECDSA 交换尝试发送密钥的“正常”和“_sk”变体。但是,对于我的 ED25519 密钥,连接似乎只尝试私钥的“_sk”变体。
如何以及在哪里可以配置此行为?