为什么密钥对是在iOS交换机[SSH服务器]上生成的,而不是在客户端上生成的?

为什么密钥对是在iOS交换机[SSH服务器]上生成的,而不是在客户端上生成的?

我一直在阅读《CCNA 200-301 官方认证指南,第 1 卷》,因为我正在为 CCNA 考试学习:

CCNA_200-301_Official_Cert_Guide/Odom,_Wendell_-_CCNA_200-301_Official_Cert_Guide,_Volume_1.pdf
  • 我有多年使用经验ssh-keygen客户然后将公钥复制到 SSH 服务器,以便使用私钥登录客户的机器
  • 或者,我可以选择配置 SSH 服务器,以便使用密码;在这种情况下,我不必担心将公钥复制到 ssh 服务器

第 6 章中描述的内容以及例子,即交换机作为SSH服务器,PC作为客户端:

  • IOS 使用图中的三个 SSH 专用配置命令来创建 SSH 加密密钥。SSH 服务器使用交换机的完全限定域名 (FQDN) 作为输入来创建该密钥。交换机根据交换机的主机名和域名创建 FQDN。[...] 然后,第三个命令,即 crypto key generate rsa 命令,生成 SSH 加密密钥。

    图 6-5 中的配置依赖于两个默认设置,因此图中省略了这两个默认设置。IOS 默认运行 SSH 服务器。此外,IOS 默认允许 SSH 连接到 vty 线路。

    在配置模式下逐步查看配置过程对 SSH 配置特别有帮助。[...] 示例 6-5 显示了图 6-5 中正在配置的命令,其中加密密钥是最后一步

    crypto key generate rsa
    创建并存储(在闪存中的隐藏位置)SSH 所需的密钥。


  1. 为什么密钥对是在服务器 [交换机] 上明确生成的,而不是在客户端 [PC] 上?
  2. 在书中描述和视频中显示的示例中,是否选择密码作为身份验证模式,而不是与服务器上的公钥相对应的私钥(在客户端上)?
  3. 每次安装时都会生成密钥对opensssh-serverapt

如果每次安装时都会生成密钥对,那么它们是用来做什么的,因为我注意到我使用的服务器上openssh-server有一些密钥:/etc/ssh

-rw-r--r-- 1 root root 505426 Aug 24 15:40 moduli
-rw-r--r-- 1 root root   1650 Feb 26  2022 ssh_config
drwxr-xr-x 2 root root   4096 Feb 26  2022 ssh_config.d
-rw------- 1 root root    525 Dec 11 17:49 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    193 Dec 11 17:49 ssh_host_ecdsa_key.pub
-rw------- 1 root root    432 Dec 11 17:49 ssh_host_ed25519_key
-rw-r--r-- 1 root root    113 Dec 11 17:49 ssh_host_ed25519_key.pub
-rw------- 1 root root   2622 Dec 11 17:49 ssh_host_rsa_key
-rw-r--r-- 1 root root    585 Dec 11 17:49 ssh_host_rsa_key.pub
-rw-r--r-- 1 root root    342 Dec  7  2020 ssh_import_id
-rw-r--r-- 1 root root   3254 Aug 24 15:40 sshd_config
drwxr-xr-x 2 root root   4096 Dec 11 20:43 sshd_config.d

相关内容