我们在我公司的安全组中讨论了以下管理 SSL 私钥的选项中哪个更糟糕。
Web 服务器需要访问私钥以进行加密操作。应保护此文件免遭未经授权的访问。同时,服务器应该自动启动,无需人工干预(如果它足够安全)。
我们正在讨论三个选项:
使用文件系统权限保护密钥。
使用受密码保护的密钥并在每次重新启动时手动输入密钥。
使用受密码保护的密钥并将密钥存储在文件系统中以自动重启。
我们的担忧如下:
使用选项 1,重新启动是自动的,但妥协可以复制私钥,并且由于不受保护,可用于解密通信或冒充我们的服务器。
选项 2 似乎更安全,但它需要人工干预,如果它发生在非工作时间,系统管理员会担心。此外,密码应该与多个系统管理员共享,并且您知道共享的秘密不再是秘密。
选项 3 是前两个选项中最好的,但是如果有人可以访问密钥,也可以访问密码 :(,所以它看起来一点也不安全。
您如何管理服务器私钥的安全性?还有其他(更安全)的选择吗?
当我使用certutil它时返回此错误:certutil: function failed: security library: bad database.
例如,我无法列出证书或密钥
我怎样才能解决这个问题?
为 Windows 2008 R2 服务器生成 CSR,需要确保用于 CSR 的私钥是新的。
我之前使用 OpenSSL 创建了我自己的自签名证书以进行测试,如果我没记错的话,我能够指定要使用的私钥。
在 IIS 服务器证书中,我从未被要求生成或选择私钥。
那么,在基于 Windows 的服务器上生成 CSR 是否总是为其创建一个新的私钥?如果没有,我如何确保制作/使用新的私钥?
我们有堡垒服务器 B。我们需要使用私钥从 A 通过 B 到 C 的 SSH。
什么是更好的选择:
将私有 SSH 密钥放在服务器B上。我们了解到在生产环境中这样做是个坏主意。
从这里:
永远不要将您的 SSH 私钥放在堡垒实例上。相反,使用 SSH 代理转发首先连接到堡垒,然后从那里连接到私有子网中的其他实例。这使您可以将 SSH 私钥保存在您的计算机上。
使用SSH 代理转发。为了设置代理转发,我需要允许 TCP 转发。设置代理转发时,会在转发主机上创建一个套接字文件,这是密钥可以转发到目的地的机制。在 AWS 的堡垒设置中:
TCP 转发:将此值设置为 true 将启用 TCP 转发(SSH 隧道)。这可能非常有用,但也存在安全风险,因此我们建议您保留默认(禁用)设置,除非需要
也从这里:
SSH 代理转发被认为是有害的
什么是更好的?第二个链接的替代方法:ProxyCommand,我知道它有助于解决套接字文件问题,但我仍然认为我必须启用 TCP 转发,所以它足够安全吗?
我知道我可以做到(编辑:修复了这个问题;我对 gpg 而不是 openssh 感兴趣)
gpg --edit-key
Run Code Online (Sandbox Code Playgroud)
...更改我的密钥的密码,但我不确定这意味着什么。
如果我在盒子 A 上加密数据并在盒子 B 上解密(比如口是心非),我是否必须更改两端的密码?以前的备份仍然有效吗?
密码短语只是密钥文件周围某种加密包装器的密钥吗?
愚蠢的问题,但我不想搞砸。谢谢!
我有一个开发 git 服务器,当live分支被推送到时,它会部署到实时服务器。每个用户都有自己的登录名,因此post-receive实时部署的钩子在他们自己的用户下运行。
因为我不想将用户公钥维护为远程实时服务器上的授权密钥,所以我编写了一组“属于 git 系统的密钥以添加到远程实时服务器(在post-receive我使用的钩子中$GIT_SSH使用-i选项设置私钥)。
我的问题是,由于所有用户可能都希望部署到现场,因此 git 系统的私钥必须至少是组可读的,而 SSH 确实不喜欢这样。
以下是错误示例:
XXXX@XXXX /srv/git/identity % ssh -i id_rsa XXXXX@XXXXX
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0640 for 'id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: id_rsa
Run Code Online (Sandbox Code Playgroud)
我环顾四周,希望能找到强制 ssh 通过连接的方法,但我什么也没找到,但人们盲目地说除了单个用户外,您不应该允许访问任何内容。
鉴于以下所有内容都存在,我很难找到有关 OpenSSH 客户端尝试使用私钥对服务器进行身份验证的顺序的正确文档:
~/.ssh,例如~/.ssh/id_rsa,~/.ssh/config,ssh-agent.是否总是尝试所有这些位置(前提是主机与 中的条目匹配~/.ssh/config),以及按什么顺序?
背景:我有~/.ssh/id_rsa它只能用于对服务器A进行身份验证,并且我有另一个管理的密钥ssh-agent只能用于对服务器B进行身份验证。当试图ssh给乙,认证失败,显然是因为仅 ~/.ssh/id_rsa是尝试。尝试由 管理的密钥似乎没有后备ssh-agent。
这是我最后的手段。几个小时以来,我一直试图在这里找出问题所在。
交易如下:我已将我的私钥从机器 #1 复制到机器 #2。机器 #1 能够使用我的公钥通过 ssh 连接到服务器就好了,但是当尝试连接到服务器时,机器 #2 提供以下输出:
$ ssh -vvv -i /home/kevin/.ssh/kev_rsa user@192.168.1.244 -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: …Run Code Online (Sandbox Code Playgroud) 你好,
我在 Fedora 23 安装后遇到了 SSH 问题。
当我不想使用私钥连接到我的远程主机时,我的主机会找到密钥:
debug1: matching key found: file /home/theo/.ssh/authorized_keys, line 1 RSA {REDACTED}
debug1: restore_uid: 0/0
Postponed publickey for theo from {REDACTED} port 60351 ssh2 [preauth]
Connection closed by {REDACTED} [preauth]
debug1: do_cleanup [preauth]
debug1: monitor_read_log: child log fd closed
Run Code Online (Sandbox Code Playgroud)
但正如你看到我的客户自己断开连接
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/tbouge/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg …Run Code Online (Sandbox Code Playgroud) 我正在使用 psftp.exe 自动下载文件,但需要使用私钥连接,如下所述。我能够连接,但是,私钥需要密码。
此过程有效,但我必须从键盘输入密码,这会破坏从命令行运行的过程。我想知道是否有人可以告诉我如何在命令行中发送密码。
Using Putty's PSFTP.exe With A Private Key
Command Line:
c:\putty\psftp.exe username@ftpsite.com -i putty_id_rsa_1024.ppk -b c:\putty\myscript.scr
Command Line Notes: Replace username with your login name and modify the "putty_id_rsa_1024.ppk" key name to match your key. In order to use a key, you will need to use puttygen.exe to generate, import, and or export your keys. PuTTY requires a putty key file to make a private key connection.
myscript.scr file contents:
cd /
put File1.txt
put File2.txt
put …Run Code Online (Sandbox Code Playgroud)