在我开始目前的工作(在一家小企业)之前,我的办公室在网络上没有防火墙,几乎没有任何备份。现在,我已经以专门的系统管理员/单人 IT 部门的身份登录,我一直在尽我所能来改变这一点。在向我的老板解释了我们有多脆弱之后,他允许我设置一些备份服务器,其中一台在他家。
现在,我正在尝试设置所有内容,以便我可以自动执行每日备份。我打算通过 ssh 使用 rsync 来做到这一点。出于安全和自动化的考虑,我计划禁用 ssh 密码登录并仅使用 rsa 密钥验证。好吧,如果我设置了 rsa 密码,那么我仍然需要输入密码,这是一个问题。
没有 rsa 密码是否会显着降低安全性?我是公司中唯一对这种事情有任何线索的人,所以我不太担心有人在我的机器上调用终端(无论如何,当我 AFK 时它总是被锁定的) ) 并通过 ssh 连接到其中一台备份服务器并造成任何损坏。我对系统管理领域仍然非常非常陌生,这是我第一次做这样的事情,我不想在安全设置中留下任何漏洞。
这里有问题的计算机正在运行 Ubuntu 10.10、SME Server 和 OSX 10.6,如果这有什么不同的话。
我发现了这个相对古老的问题,即 RSA 还是 DSA 是使用 GnuPG 进行签名和加密的首选算法。
使用 时gpg --gen-key,两个相关选择是“RSA 和 RSA”或“DSA 和 Elgamal”。哪个更好?各自的优缺点是什么?自 2009 年以来有什么变化吗?
我想我已经忘记了我的密码RSA再次。
有没有办法让我的本地命令行提示我输入它,这样我就可以检查至少我记得的内容是否正确,这样我就不会不必要地更改它?
下次我把它写在便利贴上 ;)
我正在尝试从一台运行 OS X 10.6 的 Mac 到另一台 Mac。通过密码似乎可以正常工作,但我无法让它改用 RSA 密钥。OS X 上的 ssh 配置文件在哪里,重新加载 SSH 的命令是什么?
更新
我要问的是如何配置高级选项。例如,在 Ubuntu 上有一个 ssh 配置文件,/etc/ssh/sshd_config如果您执行诸如更改端口或禁用特定用户 ( PasswordAuthentication no) 的密码验证之类的操作,您需要运行/etc/init.d/ssh reload以重新加载配置。我在 OS X 上没有看到那个文件,所以只是想知道它在哪里。我知道~/.ssh ~/.ssh/authorized_keys和``~/.ssh/config`
如何在 Windows 中创建 RSA 公钥\私钥对文件?
我一直在努力设置一个有效的配置来打开与第二台机器的连接,通过另一台机器,并使用 id_rsa(它要求我输入密码)连接到第三台机器。
我在另一个论坛上问过这个问题,但我没有收到可以认为非常有帮助的答案。
这个问题,更好地描述,如下:
Local machine: user1@localhost
Intermediary machine: user1@inter
Remote target: user2@final
Run Code Online (Sandbox Code Playgroud)
我可以使用伪 tty 完成整个连接:
ssh -t inter ssh user2@final
Run Code Online (Sandbox Code Playgroud)
(这将询问我在机器“inter”中的 id_rsa 文件的密码)
但是,为了加快速度,我想设置我的 .ssh/config 文件,以便我可以使用以下命令简单地连接到机器“final”:
ssh final
Run Code Online (Sandbox Code Playgroud)
到目前为止,我所拥有的 - 不起作用 - 在我的 .ssh/config 文件中:
Host inter
User user1
HostName inter.com
IdentityFile ~/.ssh/id_rsa
Host final
User user2
HostName final.com
IdentityFile ~/.ssh/id_rsa_2
ProxyCommand ssh inter nc %h %p
Run Code Online (Sandbox Code Playgroud)
id_rsa 文件用于连接到中间机器(这不需要我输入密码),而 id_rsa_2 文件用于连接到机器“final”(这个需要密码)。
我试过混合一些LocalForward和/或RemoteForward字段,并将 id_rsa 文件放在第一台和第二台机器上,但我似乎无法在没有任何配置的情况下成功。
PS:我试图从以下方面获得一些帮助的线程:
http://www.linuxquestions.org/questions/linux-general-1/proxycommand-on-ssh-config-file-4175433750/
我正在尝试生成 RSA 密钥以使用 ssh 访问 azure 中的一些 git 存储库。
有了 Ubuntu22.04和 OpenSSL 版本OpenSSL 3.0.2 15 Mar 2022,
我生成一个 RSA 密钥,如下所示:
$ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (/home/me/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/me/.ssh/id_rsa
Your public key has been saved in /home/me/.ssh/id_rsa.pub
The key fingerprint is:
...
The keys randomart image is:
+---[RSA …Run Code Online (Sandbox Code Playgroud) 我在我的电脑上运行这个命令(Openssl 版本:1.0.1):
openssl pkcs8 -inform DER -in file.key -passin pass:12345678a -outform PEM -out key.pem
Run Code Online (Sandbox Code Playgroud)
我得到了这个 key.pem:
-----BEGIN PRIVATE KEY-----
MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBANCFPVXwO+6qQdOs
...
wVauPfh0cGEf1Kc=
-----END PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
但是当我从我的服务器(Openssl 版本:0.9.8e-fips-rhel5)运行相同的命令时,我得到了这个输出:
-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQDQhT1V8DvuqkHTrMPFUUAXUl0ihDGoiD86SqK8Z3n19yp1VrJf
...
zHY0343VXnpM2opKwG2E1zgfHfbcLMFWrj34dHBhH9Sn
-----END RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
里面的 Base64 是不同的,也是标头:
-----BEGIN PRIVATE KEY-----
-----BEGIN RSA PRIVATE KEY-----
Run Code Online (Sandbox Code Playgroud)
第一个对我有用,我怎么能在 0.9.8 版本上获得 -----BEGIN PRIVATE KEY----- 输出?
我在 OpenSsl 补丁说明上找到了这个:
将默认私钥格式更改为 PKCS#8。
所以,这可能是主要问题,我希望有人能帮我解决这个问题,我找不到获取私钥的方法,但找不到 BEGIN RSA PRIVATE KEY 的方法。
谢谢
我有一个启用了 DHCP 的网络,还有一台双启动操作系统的计算机,每个操作系统都有不同的 SSH 密钥(是的,我想在每个操作系统上保留不同的密钥,而不是将相同的身份/私钥复制到每个)。由于 MAC 地址相同,操作系统之间的 IP 地址不会更改,因此在连接到 ssh 时,即使不使用 IP 地址而是通过 DNS/mDNS 使用主机名,我也会收到警告:
Warning: the RSA host key for 'hostname' differs from the key for the IP address '192.168.1.172'
Offending key for IP in /Users/user/.ssh/known_hosts:37
Matching host key in /Users/user/.ssh/known_hosts:38
Are you sure you want to continue connecting (yes/no)?
Run Code Online (Sandbox Code Playgroud)
当主机名与该主机名的 IP 地址不同时,如何抑制警告,但保留检查每个主机名的主机密钥是否相同的能力?(每个操作系统都有一个唯一的主机名)
默认情况下,在我当前的版本 ( 6.9p1) 中,OpenSSH Server 将创建四种类型的主机密钥:
$ ls /etc/ssh/ssh_host_*_key.pub
/etc/ssh/ssh_host_dsa_key.pub
/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub
Run Code Online (Sandbox Code Playgroud)
通过测试,我注意到,至少在使用相同版本的 OpenSSH 客户端 ( 6.9p1) 时,主机将使用 ECDSA 密钥,而不管客户端的密钥类型如何。
OpenSSH 在哪里决定支持的算法具有哪个优先级?此信息是否可编辑或硬编码到当前版本的源代码中?
更重要的是,为什么 OpenSSH 决定优先考虑 ECDSA 算法?
rsa ×10
ssh ×7
dsa ×2
passwords ×2
security ×2
command-line ×1
cryptography ×1
dhcp ×1
encryption ×1
gnupg ×1
linux ×1
macos ×1
openssh ×1
openssl ×1
passphrase ×1
rsync ×1
ssh-keygen ×1
ssh-tunnel ×1
windows ×1