登录到 Windows 10 Build 10547 我看到一瞬间弹出一个消息框。
登录成功后没有时间阅读它。
在事件日志中,我看到:
Audit failure 5061 with a task category of System Integrity
The event directly previous is fetching a key from C:\ProgramData\Microsoft\Crypto\SystemKeys\
Run Code Online (Sandbox Code Playgroud)
它说密钥类型是用户密钥。
在 5061 审核失败中包含以下信息:
Cryptographic operation.
Subject:
Security ID: SYSTEM
Account Name: WIN-SOA3U4S9MJA$
Account Domain: WORKGROUP
Logon ID: 0x3E7
Cryptographic Parameters:
Provider Name: Microsoft Software Key Storage Provider
Algorithm Name: RSA
Key Name: 454822bd-d329-d1b0-4211-07ccee6df7b8
Key Type: User key.
Cryptographic Operation:
Operation: Open Key.
Return Code: 0x80090016
Run Code Online (Sandbox Code Playgroud)
详细信息选项卡包含
System
- Provider
[ Name] …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 OpenSSL 将 PEM 文件和 RSA 私钥转换为 PFX 文件。这是我尝试使用的示例命令:
openssl pkcs12 -export -out cert.pfx -inkey key.pem -in cert.pem
Run Code Online (Sandbox Code Playgroud)
这样做时,我收到以下错误消息:
unable to load private key
9068:error:0906D06C:PEM routines:PEM_read_bio:no start
line:pem_lib.c:696:Expecting: ANY PRIVATE KEY
Run Code Online (Sandbox Code Playgroud)
证书文件如下所示:
-----BEGIN CERTIFICATE-----
....
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)
私钥如下所示:
-----BEGIN RSA PRIVATE KEY-----
....
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
我对错误进行了一些挖掘,但我还没有找到解决方案。
编辑
经过一些额外的研究,不同的 openssl 版本似乎是一个问题。
如果我在 2016 年 1 月 14 日运行 0.9.8zh 的 OSX 系统上运行它,这些语句可以正常工作。
但是,如果我在版本为 OpenSSL 1.0.1p 2015 年 7 月 9 日和 OpenSSL 1.1.0g 2017 年 11 月 2 日的 …
我已经为我的 Ubuntu 服务器设置了仅基于密钥的 SSH 登录(并拒绝 root 登录)
ls -l /home/ernest/.ssh 显示这个:
-rw------- 1 ernest ernest 405 Dec 14 09:17 authorized_keys
这是否意味着在ernest(我的管理登录)下运行的任何进程都可以修改authorized_keys?结果我将无法访问我的服务器?
如果是,是否有任何保护措施authorized_keys?
我正在尝试从终端通过 SSH 连接到本地 IP 地址。命令是
ssh -v user@192.168.0.2
Run Code Online (Sandbox Code Playgroud)
但它没有连接。它不断给我错误
“权限被拒绝(公钥,密码)。”
我一直在寻找年龄,只是找不到问题所在。我可以通过Windows上的PuTTY使用相同的方法进行连接,也可以通过FileZilla进行连接
完整输出:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 192.168.0.2 [192.168.0.2] port 22.
debug1: Connection established.
debug1: identity file /Users/[UserName]/.ssh/id_rsa type 1
debug1: identity file /Users/UserName/.ssh/id_rsa-cert type -1
debug1: identity file /Users/UserName/.ssh/id_dsa type -1
debug1: identity file /Users/UserName/.ssh/id_dsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string …Run Code Online (Sandbox Code Playgroud) 所以最近有消息称 OpenSSH 放弃了对 SHA-1 登录的支持,我试图了解他们指的是哪种格式。多年来,我一直通过ssh-keygen -t rsa -b 2048. 这是不再推荐的类型,我应该切换到例如 ECDSA 吗?
在此手册页,https://www.man7.org/linux/man-pages/man1/ssh-keygen.1.html,默认选项rsa为-t参数解释说,所选择的选项是使用SHA1签名,所以一应该选择rsa-sha2-256例如。
我尝试检查密钥的类型,ssh-keygen -l -f key它告诉我它确实是 SHA256 类型。如果是这样,那么它解决了我的问题,但欢迎澄清一些问题。谢谢你!
消息来源:https : //www.zdnet.com/article/openssh-to-deprecate-sha-1-logins-due-to-security-risk/
我有一个由 openssl 生成的 .pem 私钥。如何从中提取密钥ID?
编辑:生成的 rsa 密钥对用于 Amazon cloudfront。在控制台上上传时,会显示“密钥 ID”。但是,我生成的私钥不适用于我的账户,而且我没有任何插槽可用于在我的 AWS 账户上上传公钥(限制为 2 个公钥)。
所述rsautl OpenSSL的效用没有出现有一个设置,其中用于OAEP散列可以被改变。我的测试表明它只是默认为 sha1,仅此而已。
我的问题是......有没有办法改变哈希?
我用来测试它的命令:
openssl rsautl -inkey publickey.txt -encrypt -oaep -in plaintext.txt -out ciphertext.txt
Run Code Online (Sandbox Code Playgroud) 我来自使用带有 OpenSSL 的普通旧 RSA 来满足我所有的非对称加密需求,我学到了相当多的知识,但是我很难围绕 OpenPGP 协议进行思考。因此,这将是几个问题。
在我的 Debian 盒子中,使用 GnuPG,在当前钥匙串中创建主密钥时,我注意到子密钥的默认创建。在阅读了一些之后,我了解到 GnuPG 以这种方式自动管理密钥;严格用于签名的主密钥和严格用于加密的子密钥。这让我相信他们只是为私钥和公钥使用了不同的名称:主密钥(如私钥)用于签署只有子密钥(公钥)可以解密的数据,但子密钥(公钥)只能加密数据,然后只能通过主密钥(私钥)解密。我在这个假设中是否正确,还是它们完全是 2 个单独的密钥对?
如果它们是两个单独的密钥对,那么什么在数学上将子密钥绑定到主密钥?
是否只是 GnuPG 使用这种方法,其中会自动创建子密钥以进行加密,还是 OpenPGP 协议强制要求这样做?
当我将密钥上传到密钥服务器时,上传的是哪个密钥,我的主密钥还是子密钥?或两者?
当我使用该--export功能时,当我指定我的 UID 时会导出哪个 OpenPGP 密钥?
假设我有一个公共 RSA SSH 密钥,如下所示:
ssh-rsa ijvoienvejfvmiejnci3onrvejviewlonvcljnrijcnreionv me@machine
Run Code Online (Sandbox Code Playgroud)
如果我正在复制此密钥以与另一台机器共享,是否在末尾添加注释 ( me@machine)?我是否包括标题 ( ssh-rsa)?
我正在尝试使用openssl. 以以下示例令牌为例:
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ
Run Code Online (Sandbox Code Playgroud)
根据RFC 7518,RS256 表示所使用的签名是“使用 SHA-256 的 RSASSA-PKCS1-v1_5”。我的理解是,以下使用方法openssl dgst可以:
# generate the key
openssl genrsa -out private.pem 2048
# generate the signature
echo 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ' | \
openssl dgst -sha256 -sign private.pem -binary | \
openssl base64 | \
tr -- '+/=' '-_ '
Run Code Online (Sandbox Code Playgroud)
但是,尝试使用 jwt.io 验证会导致无效签名。此外,使用 jwt.io 使用相同的私钥生成签名会产生完全不同的签名。
我究竟做错了什么?是否openssl dgst签署此令牌的正确方法是什么?