sshd-keygen 和 ssh-keygen 之间的区别

sshd-keygen 和 ssh-keygen 之间的区别

据我所知,ssh-keygen 用于生成私钥和公钥。但是sshd-keygen有什么用呢?

我没有找到手册页或文档,因此没有关于 sshd-keygen 使用的文档。

[root@intel-chiefriver-02 ~]# whereis sshd-keygen
sshd-keygen: /usr/sbin/sshd-keygen
[root@intel-chiefriver-02 ~]# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

答案1

/usr/libexec/openssh/sshd-keygenFedora 里有openssh-server-7.9p1-5.fc30.x86_64.rpm。这是创建主机密钥的脚本。有一个与之配套的 systemd 服务,[email protected].

ssh-keygen该服务检查特定主机密钥是否不存在,并运行仅调用以创建它们的脚本。因此,如果主机密钥不存在或被删除,它们会在下次需要时重新生成。

sshd-keygenFedora wiki 中也提到了更改/删除 slogin 和 sshd-keygen

它提到删除“sshd-keygen,一个遗留的 Fedora 初始化脚本”(并将其替换为适当的 systemd 服务),并提到“需要确保 ssh 主机密钥可用的应用程序/服务”。

您的实现可能不同,但我想可以肯定地说它是出于相同的目的。

答案2

SSH 服务器本身有一个密钥,用于向客户端标识自己的身份。这是为了防止中间人攻击等。也是为什么你会看到类似的内容

The authenticity of host '[foo.example.com]:22 ([10.0.2.15]:22)' can't be established.
ECDSA key fingerprint is SHA256:QOCUzNedwfepPHZ8JOn7xfGc1zQ8MmIohNCAE93jMEQ.
Are you sure you want to continue connecting (yes/no)?

第一次使用 ssh/scp/sftp 连接远程主机

服务器上这些密钥的实际文件应位于/etc/ssh-

ssh_host_dsa_key
ssh_host_dsa_key.pub
ssh_host_ecdsa_key
ssh_host_ecdsa_key.pub
ssh_host_ed25519_key
ssh_host_ed25519_key.pub
ssh_host_rsa_key
ssh_host_rsa_key.pub

相关内容