使用ssh-keygen
我能够在 Machine#1 上生成公钥-私钥对,然后使用 .txt 将公钥复制到 Machine#2 ssh-copy-id
。在 Machine#2 上,我注意到文件夹中已经生成了 3 个密钥对/etc/ssh
,我想知道这些是做什么用的?他们的目的只是允许复制私钥并使用它吗?
我可以通过简单地复制 Machine#2 文件夹中已存在的私钥之一来授予对 Machine#1 的访问权限,而不生成密钥对/etc/ssh
吗?如果是这样我该怎么做?
答案1
中的关键/etc/ssh
是(可能)主机密钥:客户端用来验证其所连接的服务器身份的密钥;不是用户密钥~/.ssh
每个用户可能生成以识别为连接到该服务器的授权用户,并且通常为每个用户存储这些信息。这些密钥通常是在系统上安装 OpenSSH 软件包时生成的,通过ssh-keygen -A
:
-A
对于不存在主机密钥的每种密钥类型(rsa、dsa、ecdsa 和 ed25519),使用默认密钥文件路径、空密码、密钥类型的默认位和默认注释生成主机密钥。如果-F也已指定,其参数用作生成的主机密钥文件的默认路径的前缀。这是由/etc/rc生成新的主机密钥。
答案2
那些是主持人服务器识别自身的密钥,正如其文件名所暗示的那样 ( ssh_host_xxx_key
)。复制它们只会允许其他系统识别自己的身份作为服务器,他们不会允许您访问服务器本身。
我是否可以通过简单地复制 Machine#2 的 /etc/ssh 文件夹中已存在的私钥之一来授予对 Machine#1 的访问权限而不生成密钥对?如果是这样我该怎么做?
不。复制私钥是非常不安全的,不应该这样做。