我正在尝试使用本教程通过我的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
当然,这没有任何意义,因为我从未使用过智能卡,也没有安装智能卡驱动程序。
此外,这些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>
编辑:完成后set | grep SSH_AUTH_SOCK
,我得到:
SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh
但是,尝试使用cat
此文件时,出现No such device or address
错误。但是,我不确定这是相关的还是由于期望返回而只是用户错误。
我发现您的设置存在两个问题:
但是,我
.init
从此博客借用并使用了脚本(代替编辑Xprofile)。
该博客文章中的init脚本已过时(例如,对于2.1之前的GnuPG版本)。不要使用它。
编辑:完成后
set | grep SSH_AUTH_SOCK
,我得到:SSH_AUTH_SOCK=/run/user/1000/keyring-PLDuNs/ssh
但是,在尝试保存此文件时,出现“ No such device or address”错误。但是,我不确定这是相关的还是由于期望返回而只是用户错误。
您使用了错误的SSH身份验证套接字。
有关这些声明的来源,请查阅官方文档。有关直接修复的信息,请参见Unix StackExchange上Jens Erat的过程概述。为方便起见,请在此处复制:
ssh-agent
通过添加enable-ssh-support
到启用协议~/.gnupg/gpg-agent.conf
export 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密钥一样
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句