我正在尝试将现有的私钥(id_rsa文件)添加到我的~/.ssh目录中,但看到我已经有了一个。我是否必须更换现有的密钥,或者有没有办法将它们组合起来?
我认为必须有一种方法,因为应该可以从同一用户帐户获得不同服务器的密钥......
我家里有 2 台笔记本电脑,都运行 Ubuntu 12.04(台式机),并且都使用相同的 NetGear wifi 路由器。我在其中一台机器上使用了一种称为“MAC 绑定”的技术,以便路由器在每次尝试连接到 Internet 时始终为其分配相同的 192.168.1.52 IP 地址。(无关:MAC 绑定只是意味着将路由器配置为始终将特定 MAC 地址绑定到特定 IP。)
所以现在,我有 1 台笔记本电脑总是被分配一个在 192.168.1.1 到 192.168.1.50 范围内的随机 IP,还有 1 台笔记本电脑(我的“构建服务器”)总是被分配 192.168.1.52。
我正在尝试编写一些 bash 脚本,我将在“客户端”笔记本电脑(随机 IP 机器)上运行该脚本,该脚本将ssh进入构建服务器(192.169.1.52 机器);因此,构建服务器必须从我的 LAN 内部拥有一个“专用”IP。我不想明确地为这些 bash 脚本提供密码,所以我按照本文中的说明在这里生成了 SSH 密钥。具体来说,我:
id_rsa.pub文件)scp将id_rsa.pub文件cat放入我的构建服务器,并将它放入~/.ssh/authorized_keys文件中。我验证了我的客户端笔记本电脑的 SSH 密钥现在存在authorized_keys于构建服务器上的文件中。这里发生了什么?为什么我的构建服务器上的 SSH 不接受来自我的客户端笔记本电脑的授权密钥?我是否需要重新启动构建服务器上的任何内容(sshd等)?我错过了这里的任何关键步骤吗?如何开始故障排除?提前致谢!
更新 …
我有一个客户向我提供了他自己的 id_rsa.pub 密钥,他希望我设置一个 SSH 服务器,以便他可以向我发送文件。据我所知,当我设置我的 SSH 服务器(Windows 上的 freesshd)时,我需要一个私钥作为我的服务器的指纹。然后使用提供的私钥或生成新的私钥,我可以生成一个与用户帐户相关联的公钥,允许我的客户使用该公钥登录,而无需用户/密码组合。
我不认为服务器可以配置为使用不是从与该服务器关联的私钥生成的公钥。
如果该密钥不是从所述服务器的私钥生成的,我是否正确或者有没有办法使用现有的公钥来设置 SSH 服务器?谢谢大家!
Raspbian Pi-SSH 客户端
我用了:
sudo ssh -i /home/pi/.ssh/my_key - "Tom Smith@192.168.X.X"
Run Code Online (Sandbox Code Playgroud)
作为回报,要求输入密码,这不是我想要的输出。
我想使用身份文件。我使用 Raspbian 创建了一个密钥ssh keygen。
ssh-id-copy由于cat/exec无法识别,连接到 Windows 10 SSH Server 失败。
作为解决方法,我在 Windows 10 SSH Server 上的 .ssh 文件夹中创建了一个名为“authorized_keys”的文件。我将“my_key”公钥存储在authorized_keys 文件中。
如果不使用用户密码,我无法访问 SSH 服务器。请帮助?authorized_keys -win 10 ssh 问题
Mikrotik 不支持几乎所有 Linux 设备上的主机文件复制ssh-copy-id。~/.ssh/id_rsa.pub.ssh/authorized_keys
是否有等效的方法在 Mikrotik RouterOS 设备上授权密钥?
我无法从 MacOS 终端登录新安装的 Ubuntu 22.04。
这是我在尝试 SSH 到 ubuntu 时遇到的错误
QWERTY-M-91FL:~ qwerty$ ssh mnbv@16.67.45.123
Unable to negotiate with 16.67.45.123 port 22: no matching host key type found. Their offer: rsa-sha2-512,rsa-sha2-256,ecdsa-sha2-nistp256,ssh-ed25519
Run Code Online (Sandbox Code Playgroud) 在 GitLab 存储库设置中查看 Deploy Keys 时,这些键有一个“名称”和某种指纹。指纹看起来像这样:
2b:be:a7:7f:44:64:89:8d:e3:f7:ea:3c:12:c9:e5:e7
Run Code Online (Sandbox Code Playgroud)
我试图找出这个对应于我的哪个 ssh 密钥对。如何从现有的 ssh 密钥对计算此字符串?
我阅读了以下教程
我确认ssh-keyscan 192.168.1.X扫描并打印服务器/主机的所有 公钥值 - 该输出来自服务器/主机的以下文件
/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)
我可以通过以下选项过滤它们:-t
ssh-keyscan -t key_type 192.168.1.X哪里key_type可以rsa,ecdsa和ed25519甚至混合,例如:rsa,ecdsa
例如:
ssh-keyscan -t rsa 192.168.1.X到目前为止,我理解了该命令的所有这两种变体。我在我的电脑上确认了该行为
现在,在对这个命令进行研究之后,这篇文章的原因是:
两者都提到了该/etc/ssh/ssh_known_hosts文件,存在
如果在未验证密钥的情况
ssh_known_hosts下构建文件ssh-keyscan,用户将容易受到中间人攻击。另一方面,如果安全模型允许这种风险,则 可以帮助检测在文件创建ssh-keyscan后开始的被篡改的密钥文件或中间人攻击ssh_known_hosts
不清楚是否自动ssh_known_hosts创建/构造或使用某些选项,例如-c- 我知道该选项不存在。
那么该文件在客户端中不存在 - 我假设在命令执行之后应该自动生成或创建该文件 - 该路径和文件名出于某种明确的原因而存在,对吗?- 类似于使用命令并被客户端接受服务器指纹.ssh/known_hosts时创建/更新文件的方式ssh username@hostname
我想使用 ssh-keygen 实用程序生成 rsa-sha2-256 ssh 密钥对。您能分享相同的命令吗?
对于 ssh-rsa 来说,它是ssh-keygen -t rsa
我的桌面上有一个我目前使用的私钥 git 文件,我也需要在我的笔记本电脑上使用,我的问题是我是否也可以在不同的计算机上使用相同的密钥,如果可能的话我该怎么做?
我正在使用乌龟 git。
干杯
我在我的 Ubuntu 服务器中更改了密码。但我注意到我仍然无法使用 ssh,因为我之前做过 ssh-copy-id。我想撤销对我自己和其他可能复制了 ssh 密钥的用户的访问权限。
我已经更改了密码,现在我需要创建新密钥或撤销对已被授予用户的访问权限。
我正在使用 puttygen.exe(来自https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 的那个)来生成 RSA 密钥。然而,几个小时过去了,还没有结束
生成 RSA 密钥通常需要多长时间,为什么在我的情况下需要几个小时?
我已经通过ssh-keygen -f foo. 文件内的密钥foo.pub是AAAAB3NzaC1yc2EAAAADAQABAAABAQDaJ1UGxfjTCzuVNvgjOyK/NF5KFDO2qUREGd9PBB+zJotS85XO9hQjq5XhdekXHfhCM/h3AeGW/xH+XfQIaNd6Lygkts3xls7FCqMVH4PxDpLTSQbbZCV+peMV6xNVv468SD07TGIp9RC0FFuR79tnz28X9RzKCUGrzpu38pAyPs4X3BGgMsc6IcPIfPnEZ61RMWiiouyShKuhD/G68DeTdokmmK0EnO2qMXgu7xsAw+2gSpotIgAPulAPpQr5+Cgit94GpN2Vy9OvhEGT3oqHsR8P4zoJ3rWppiCUDRvFZS/fQsRoNj59LRcPRVE0V8wLnpoEZOu85wBMiIfiac3F. 那是 372 个字符。1 个字符是 8 位,因此我的密钥是 372 * 8 = 2976 位密钥。这不可能是真的,因为man ssh-keygen说默认值为 2048 位。我哪里错了?
ssh-keys ×13
ssh ×10
linux ×3
openssh ×3
command-line ×1
fingerprint ×1
git ×1
gitlab ×1
private-key ×1
public-key ×1
putty ×1
rsa ×1
ssh-keygen ×1
sshd ×1
ubuntu-12.04 ×1
ubuntu-22.04 ×1
windows-10 ×1