为了在新机器和环境上更轻松地设置无密码 SSH,是否有任何原因id_rsa.pub不能在网络上的某个地方发布文件(只是密钥对的公共部分)?例如在 dotfiles GitHub 存储库中。
我知道:
id_rsa文件(密钥对的私有部分)必须小心保护和但我的搜索没有出现任何明确的建议,即允许或鼓励这样做。
出于好奇,同样的建议是否适用于没有密码短语的密钥对?
我目前有一个 SSH 密钥,我已经使用了一段时间,我想开始使用带有新密钥环的 GnuPG。但是,鉴于我已经使用我的密钥多年,我仍然希望在 GPG 中使用该密钥作为主/主键。我已经尝试通过这些说明导入密钥。
但是,我最终得到了被认为是“子密钥”的东西。此外,如果我尝试在不创建标准 GPG 密钥的情况下导入它,GPG 甚至看不到这个子密钥。(我假设子密钥需要先由主密钥签名。)
如何使用此密钥作为 secring.gpg 中的主密钥?
我正在尝试通过 ansible(和ssh-keygen)在少数远程服务器上重新生成 ssh 主机密钥,但文件似乎没有出现。剧本运行正常,但遥控器上的文件没有改变。
我需要求助于echo -e黑客,因为这些遥控器运行的是 Ubuntu 14.04 并且没有python-pexpect可用的正确版本(根据 ansible)。
我错过了什么?我的剧本和输出如下:
剧本
---
- hosts: all
become: true
gather_facts: false
tasks:
- name: Generate /etc/ssh/ RSA host key
command : echo -e 'y\n'|ssh-keygen -q -t rsa -f /etc/ssh/ssh_host_rsa_key -C "" -N ""
register: output
- debug: var=output.stdout_lines
- name: Generate /etc/ssh/ DSA host key
command : echo -e 'y\n'|ssh-keygen -q -t dsa -f /etc/ssh/ssh_host_dsa_key -C "" -N ""
register: output
- debug: var=output.stdout_lines
- …Run Code Online (Sandbox Code Playgroud) 针对SSH 上与Logjam相关的攻击的一种建议的缓解策略是使用类似的东西生成自定义 SSH Diffie-Hellman 组(以下针对 OpenSSH)
ssh-keygen -G moduli-2048.candidates -b 2048
ssh-keygen -T moduli-2048 -f moduli-2048.candidates
Run Code Online (Sandbox Code Playgroud)
然后用输出文件替换系统范围的模文件moduli-2048。(ssh-keygen -G用于生成候选 DH-GEX 素数,并ssh-keygen -T测试生成的候选者的安全性。)
这显然是在 SSH 服务器上做的一个合理的事情,否则将使用众所周知的组,这些组很适合预先计算,但是将自定义 SSH DH 组部署到仅客户端系统上是否有任何安全优势?(也就是说,系统连接到 SSH 服务器,但本身从不充当 SSH 服务器。)
我主要对与 Linux 上的 OpenSSH 相关的答案感兴趣,但更通用的答案也将不胜感激。
一位同事向我提供了一个 ssh 密钥,可以将其添加到authorized_keyslinux 服务器上的帐户的文件中,以便他们可以访问该帐户。
该文件如下所示:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "rsa-key-20160816"
AAAAB3NzaC1yc2EAAAABJQAAAQEApoYJFnGDNis/2oCT6/h9Lzz2y0BVHLv8joXM
s4SYcYUVwBxNzqJsDWbikBn/h32AC36qAW24Bft+suGMtJGS3oSX53qR7ozsXs/D
lCO5FzRxi4JodStiYaz/pPK24WFOb4sLXr758tz2u+ZP2lfDfzn9nLxregZvO9m+
zpToLCWlXrzjZxDesJOcfh/eszU9KUKXfXn6Jsey7ej8TYqB2DgYCfv8jGm+oLVe
UOLEl7fxzjgcDdiLaXbqq7dFoOsHUABBV6kaXyE9LmkbXZB9lQ==
---- END SSH2 PUBLIC KEY ----
Run Code Online (Sandbox Code Playgroud)
authorized_keys(嗯,sshd)的手册页清楚地表明该文件希望每个键占用一行。所以我想我需要将此密钥转换为单行格式?我该如何实现?
我总是ssh使用-i参数运行,并且总是为我连接的任何主机输入正确的密钥很麻烦。
是否有配置文件或其他东西(在 Mac 上)来定义连接到特定主机时要使用的私钥?
我有一个格式如下的公钥:
---- BEGIN SSH2 PUBLIC KEY ----
Comment: "somename-20060227"
AAAAB3NzaC1yc2EAAAABJQAAAIBmhLUTJiP[and so on]==
---- END SSH2 PUBLIC KEY ----
Run Code Online (Sandbox Code Playgroud)
通常我会看到这样格式的键:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAqof[and so on]
Run Code Online (Sandbox Code Playgroud)
我可以只复制authorized_keys 文件中的第一个密钥,还是必须以某种方式修改它,使其看起来像第二个?我认为第一个是由 PUTTYgen 生成的,而第二个是由 ssh-keygen 生成的。
我试图通过 SSH 从办公室 X 到办公室 Y 中的几个 Linux 机器。办公室 Y 中的 Linux 机器在 NAT 之后,每个机器都在自己的端口上运行。我可以通过 SSH 成功访问所有这些,但我无法进行身份验证。
我能够通过 SSH 进入第一个框,但是当我到达第二个框时,它说:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
[edited out fingerprint]
Please contact your …Run Code Online (Sandbox Code Playgroud) 在过去的 2 个小时里,我一直在寻找解决以下问题的方法,但没有成功。
发展:
我正在使用公钥身份验证连接到我的服务器。我使用 ssh-agent 转发,以便不必管理公钥/私钥。
假设我有服务器A, B and C。
如果我从LOCAL ---> A ---> B.
如果我这样做,它也能很好地工作LOCAL ---> A ---> C。
现在,如果我尝试LOCAL ---> A ---> B ---> C,SSH 无法从B to C.
值得注意的是:我作为流动性连接到服务器 A,而我作为 root 连接到服务器 B。作为流动性连接到服务器 B 解决了这个问题,但这对我来说不是一个选择。
根据用户的建议,我ssh -A每次都使用以确保启用代理转发。
我发现了一个类似的问题,这里没有答案:Is it possible to chain ssh-agent forwarding through multiple hops?
根据这里的@Zoredache:https ://serverfault.com/a/561576/45671我只需要在每个中间系统上调整我的客户端配置。我相信我做到了。
使用ssh命令行 (OpenSSH),我可以指定服务器的主机密钥指纹吗?
这可以通过 winscp.com 使用(例如) -hostkey="ssh-rsa 2048 AA:BB:CC...etc
我已经阅读了几次手册页,如果我错过了那里的明显内容,我深表歉意。
我不想只是自动接受主机密钥,也不想要求用户更新他们的known_hosts,而是在命令行上以某种形式指定主机密钥。