系统管理指南:安全性服务

Procedure如何为 Solaris 安全 Shell 设置基于主机的验证

以下过程将设置一个公钥系统,其中客户机的公钥用于服务器上的验证。用户还必须创建公钥/私钥对。

在此过程中,术语客户机本地主机是指用户键入 ssh 命令的计算机。术语服务器远程主机是指客户机要尝试访问的计算机。

  1. 承担主管理员角色,或成为超级用户。

    主管理员角色拥有主管理员配置文件。要创建角色并将角色指定给用户,请参见《系统管理指南:基本管理》中的第 2  章 “使用 Solaris Management Console(任务)”

  2. 在客户机上,启用基于主机的验证。

    在客户机配置文件 /etc/ssh/ssh_config 中,键入以下项:


    HostbasedAuthentication yes
  3. 在服务器上,启用基于主机的验证。

    在服务器配置文件 /etc/ssh/sshd_config 中,键入相同的项:


    HostbasedAuthentication yes
  4. 在服务器上,配置文件以允许将客户机识别为受信任主机。

    有关更多信息,请参见 sshd(1M) 手册页中的 FILES 部分。

    • 将客户机作为一项添加到服务器的 /etc/shosts.equiv 文件中。


      client-host
      
    • 或者,可以指示用户在服务器上将一个有关客户机的项添加到其 ~/.shosts 文件中。


      client-host
      
  5. 在服务器上,确保 sshd 守护进程可以访问受信任主机的列表。

    /etc/ssh/sshd_config 文件中,将 IgnoreRhosts 设置为 no


    # sshd_config
    
    IgnoreRhosts no
  6. 确保站点上的 Solaris 安全 Shell 用户在两台主机上都拥有帐户。

  7. 执行以下操作之一,以将客户机的公钥放到服务器上。

    • 修改服务器上的 sshd_config 文件,然后指示用户将客户机的公共主机密钥添加到其 ~/.ssh/known_hosts 文件中。


      # sshd_config
      
      IgnoreUserKnownHosts no

      有关用户说明,请参见如何生成用于 Solaris 安全 Shell 的公钥/私钥对

    • 将客户机的公钥复制到服务器。

      主机密钥存储在 /etc/ssh 目录中。这些密钥通常由 sshd 守护进程在首次引导时生成。

      1. 将密钥添加到服务器上的 /etc/ssh/ssh_known_hosts 文件中。

        在客户机上,在某一行中键入该命令(不带反斜杠)。


        # cat /etc/ssh/ssh_host_dsa_key | ssh RemoteHost \
        
        'cat >> /etc/ssh/ssh_known_hosts && echo "Host key copied"'
        
      2. 出现提示时,提供登录口令。

        复制文件时,将会显示消息 "Host key copied"。


示例 18–1 设置基于主机的验证

在以下示例中,每台主机同时配置为服务器和客户机。任一主机上的用户都可以启动与另一台主机的 ssh 连接。以下配置可使每台主机同时成为服务器和客户机: