我正在尝试使用本教程通过我的 GPG 子密钥启用 SSH 身份验证。但是,我.init从这个博客借用并使用了脚本(代替编辑我的 Xprofile)。
但是,我收到一条非常奇怪的错误消息:
??[12:53:49]?[user@pc]
???> ~ $ ssh-add -l
gpg-agent[7659]: ssh handler 0xABCD1234 for fd 5 started
gpg-agent[7659]: ssh request 1 is not supported
gpg-agent[7659]: ssh request handler for request_identities (11) started
gpg-agent[7659]: no running SCdaemon - starting it
gpg-agent[7659]: DBG: first connection to SCdaemon established
gpg-agent[7659]: no authentication key for ssh on card: Card error
gpg-agent[7659]: /home/user/.gnupg/sshcontrol:4: key '[keygrip from auth key]' skipped: No such file or directory
gpg-agent[7659]: ssh request handler for request_identities (11) ready
The agent has no identities.
gpg-agent[7659]: ssh handler 0xABCD1234 for fd 5 terminated
Run Code Online (Sandbox Code Playgroud)
当然,这毫无意义,因为我从未使用过智能卡,我认为我也没有安装智能卡驱动程序。
此外,这些 GPG 密钥是有效的并且是导入的。上面列出的密钥也有一个身份验证子密钥。
我正在运行 GnuPG 2.1.1 版。
有什么办法可以解决这个问题,并且(作为奖励)让我的 SSH 密钥通过 GPG 工作?
内容~/.gnupg/sshcontrol:
# List of allowed ssh keys. Only keys present in this file are used
# in the SSH protocol. The ssh-add tool may add new entries to this
<keygrip from my auth key>
Run Code Online (Sandbox Code Playgroud)
编辑:做完后set | grep SSH_AUTH_SOCK,我得到:
SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh
Run Code Online (Sandbox Code Playgroud)
但是,在尝试使用cat此文件时,出现No such device or address错误。但是,我不确定这是相关的还是只是用户错误,希望得到回报。
我发现您的设置有两个问题:
但是,我
.init从这个博客借用并使用了脚本(代替编辑我的 Xprofile)。
该博客文章中的 init 脚本已过时(即,对于 2.1 之前的 GnuPG 版本)。不要使用它。
编辑:做完后
set | grep SSH_AUTH_SOCK,我得到:Run Code Online (Sandbox Code Playgroud)SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh但是,在尝试处理此文件时,我收到 No such device or address 错误。但是,我不确定这是相关的还是只是用户错误,希望得到回报。
您使用了错误的 SSH 身份验证套接字。
有关这些声明的来源,请参阅官方文档。如需直接修复,请参阅Jens Erat在 Unix StackExchange 上的流程大纲。为了方便,复制到这里:
ssh-agent通过添加enable-ssh-support到启用协议~/.gnupg/gpg-agent.confexport SSH_AUTH_SOCK=$HOME/.gnupg/S.gpg-agent.ssh; 你可能想在你的~/.profile- 杀死
ssh-agent,如果启动,重装gpg-agent(gpg-connect-agent reloadagent /bye)导出您的公钥并将其添加到目标服务器(
ssh-add -L现在应该包含您熟悉的 OpenPGP 密钥的 SSH 公钥行)编者注:可以通过将密钥的“keygrip”值添加到
~/.gnupg/sshcontrol,然后在远程服务器上使用ssh-copy-id.ssh使用普通 SSH 密钥发送到目标服务器
| 归档时间: |
|
| 查看次数: |
4870 次 |
| 最近记录: |