SSH +证书颁发机构服务器?

梅花

是否可以设置SSH(例如通过pam)以针对CA服务器检查连接客户端的公钥?我曾经尝试过gnupg(通过gpg-agent --daemon --enable-ssh-support),也尝试过使用OpenCA,这对安装来说是一个挑战。同样,当涉及到这两个文件时,文档也很恐怖。

我要完成的工作大致如下:

[客户端] --SSH->“服务器” <---> [CA服务器]

整个平台都是基于* nix的,因此我现在对建议持开放态度,因为我已经对此停留了一段时间。

糖蛋白

我已按照以下指南尽可能简单地进行了设置:

我最初的想法是建立自己的“密钥服务器”,该服务器gpg可以发送和检查密钥,但是至今没有关于此的信息(或者至少没有我能找到的信息)。

从我的理解中,我应该能够ssh-add -l列出所有密钥,但这给了我:The agent has no identities.这并不奇怪,因为我从未指定过在哪里获取它们,而是“它应该可以工作”(...?) 。

gpg.conf的样子:

... lots of default ...
personal-digest-preferences SHA512
cert-digest-algo SHA512
default-preference-list SHA512 SHA384 SHA256 SHA224 AES256 AES192 AES CAST5 ZLIB BZIP2 ZIP Uncompressed
homedir /etc/gnupg
use-agent

和我的gpg-agent.conf

pinentry-program /usr/bin/pinentry-curses
default-cache-ttl 10800
default-cache-ttl-ssh 10800
write-env-file /etc/gnupg/.gpg-agent-info
enable-ssh-support

只是为了验证我是否确实有一个密钥,并且gpg在响应:

~]# gpg --list-keys
/etc/gnupg/pubring.gpg
----------------------
pub    4096R/#######2 2013-12-10 [expired: 2014-12-10]
uid                   Anton (...) <mail>
sub    4096R/#######5 2013-12-10 [expires: 2014-12-10]

OpenCA的

终于一切就绪并开始运行后,我进入一个网站,说我的“对称密钥长度太短”,我无法超越。

橡皮图章

我知道这是一个非常老的问题。但是,您的问题有两个答案。

让GPG使用SSH。

您已完成第一步,在gpg-agent.conf中启用了ssh-support

但是,您尚未提供任何要使用的PGP密钥。为了在ssh中使用PGP密钥,您必须以ssh格式导出公共密钥,并将其添加到远程主机的〜/ .ssh / authorized_keys文件中。然后将私钥的密钥夹添加到文件〜/ .gnupg / sshcontrol。

要将PGP公钥导出为ssh:

$gpg -a --export-ssh-key [keyid]

要查看PGP密钥,请执行以下操作:$ gpg --with-keygrip --list-secret-keys [keyid]

我通常会创建一个适合与SSH一起使用的子项。如果您使用的是GPG 2.2.1,那么您甚至可以使用ED25519。

$gpg --expert --edit-key [keyid]
    gpg> addkey
        Option 11 for ECC
        Option A to add authentication
        Option 1 for Curve 25519
        Expire never
        Create yes
    gpg> save

然后仅导出身份验证子项:

$gpg -a --export-ssh-key [auth subkeyid]!

感叹号仅选择指示的子项。

您还需要确保在〜/ .bashrc中设置了环境变量...如果您正在运行Xwindow客户端,通常可以通过/etc//X11/Xsession.d/90gpg-agent与以下bash脚本:

agent_sock=$(gpgconf --list-dirs agent-socket)
export GPG_AGENT_INFO=${agent_sock}:0:1
if [ -n "$(gpgconf --list-options gpg-agent | \
      awk -F: '/^enable-ssh-support:/{ print $10 }')" ]; then
    export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
fi

确保设置了环境变量后,当列出可用的标识时,添加到〜/ .gnupg / sshcontrol文件中的所有键把手都将在ssh-agent中显示为身份验证密钥:

$ssh-add -l

注意,您可以通过-E选项更改显示的哈希值,以显示MD5或SHA256。

配置SSH以使用证书

这是一个相当复杂的问题。红帽在这里有详细的演练:

Redhat SSH CA教程

结尾

尚不清楚是否可以将PGP密钥用作SSH CA密钥。我自己还没有尝试过。但是,我确实在客户端使用PGP密钥。我发现与使用ssh-genkey生成的密钥相比,它使生活变得非常轻松,并且管理SSH身份的麻烦也减轻了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

根据自签名证书颁发机构验证服务器证书

来自分类Dev

我需要使用我的证书颁发机构时间戳服务器吗?

来自分类Dev

我可以根据从证书颁发机构购买的服务器证书创建客户端证书吗?

来自分类Dev

通过VPN或基于证书的ssh访问Linux服务器?

来自分类Dev

SSH袜子服务器

来自分类Dev

如何在> 400台服务器上安装ssh证书?

来自分类Dev

我如何才能成为自己的证书颁发机构(CA)并为客户端计算机生成ssh密钥

来自分类Dev

从服务器本身提取SSH服务器密钥

来自分类Dev

与SSH服务器的连接超时

来自分类Dev

Docker SSH服务器连接被拒绝

来自分类Dev

服务器,远程登录,SSH?

来自分类Dev

SSH服务器连接超时

来自分类Dev

无法从终端访问服务器SSH

来自分类Dev

与服务器的SSH连接(使用密钥)

来自分类Dev

如何为SSH设置服务器?

来自分类Dev

从Circleci SSH到digitalocean服务器

来自分类Dev

无法SSH尝试tryhackme服务器

来自分类Dev

SSH服务器连接超时

来自分类Dev

Windows中的“ SSH服务器”?

来自分类Dev

ssh:定义服务器组

来自分类Dev

如何为SSH设置服务器?

来自分类Dev

在SSH服务器之上的Tor

来自分类Dev

SSH到我公司的服务器

来自分类Dev

无法通过SSH访问服务器

来自分类Dev

如何加固SSH服务器?

来自分类Dev

无法从终端访问服务器SSH

来自分类Dev

SSH连接到错误的服务器

来自分类Dev

从任何服务器的脚本动态ssh

来自分类Dev

晦涩的SSH连接目标服务器