在 UNIX 和 Linux® 操作系统上启用基于 RSA 密钥的认证

您可以使用基于 RSA 密钥的认证作为简单密码认证的备用方法。

关于此任务

根据安装 Tivoli® Directory Integrator 的机器上 ssh-keygen 的可用性,请在以下任一机器上执行此任务。
  • 如果在安装 Tivoli Directory Integrator 的机器上 ssh-keygen 未安装或不可用,请在受管资源上执行此任务。
  • 如果 ssh-keygen 已安装或可用,请首选在安装 Tivoli Directory Integrator 的机器上执行此任务。

过程

  1. 使用 ssh-keygen 工具以创建密钥对。
    1. 以在服务表单上定义的管理员用户身份登录。
    2. 启动 ssh-keygen 工具。发出以下命令。
      mydesktop$# ssh-keygen -t rsa
    3. 在以下提示符处,接受缺省值或输入用于保存密钥对的文件路径,然后按 Enter 键。
      Generating public/private dsa key pair.
      Enter the file in which to save the key (home/root/.ssh/id_rsa):
    4. 在以下提示符处,接受缺省值或输入口令并按 Enter 键。
      Enter the passphrase (empty for no passphrase): passphrase
    5. 在以下提示符处,确认口令选择,并按 Enter 键。
      Enter the same passphrase again: passphrase
      此示例是系统响应的样本:
      Your identification was saved in /home/root/.ssh/id_rsa.
      Your public key was saved in /home/root/.ssh/id_rsa.pub. 
      The key fingerprint is this value:
      2c:3f:a4:be:46:23:47:19:f7:dc:74:9b:69:24:4a:44 root@ps701
      注: 尽管 ssh-keygen 工具接受空口令,服务表单上也还是需要口令。
  2. 验证是否生成了密钥。
    1. 发出以下命令。
      mydesktop$ cd $HOME/.ssh
        
       mydesktop$ ls -l
      样本系统响应为:
      -rw------- 1 root   root   883 Jan 21 11:52 id_rsa
      -rw-r--r-- 1 root   root   223 Jan 21 11:52 id_rsa.pub
    2. 发出以下命令。
      mydesktop$ cat id_rsa
      样本系统响应为:
        -----BEGIN RSA PRIVATE KEY-----
      Proc-Type: 4,ENCRYPTED
      DEK-Info: DES-EDE3-CBC,7F4CF1E209817BA0
      
      GuIQh4EdIp2DY1KfgB3eHic1InCG5VC9/dumHd7AqEnlo241fRuIo8zgO87GV+tk
      cvKd/pPCGhmyCZy/are0wZt3KLYWUyoN7i+8H2Khk8LmaspD6Tx309VHTfCyoJsu
      jtuR5c4HbcRtOYhMByHEqllEst1azzlIrO75Qj5cUG01K1MbdTeXq1xUGjo97s+V
      gEOokMQ+JmaJD9lrbiMz4wjWRtREjHfc1VYTA+ZE1W3HT3PfrjCnHm9RKKFaA6kM
      fPInefQgdzhCa0mCz+HOKJfkpfPh8ufGM9Jfb99VjZdI77LHeNN4VqeQ/VyPH7pn
      wp7GbEJ8g6iX4BWUWpXUVStfYNQTV8Dis7ayZtr3g/o+AKnh/dGnk1SHHNFgUUFf/
      +E0EXMokHSqqOzwf4t8xp4upnnS/7ag5MIVcU5/iWGW4sDEw7xfB25zD4lbvVK5
      kSZeWLgm79wMipKP90iEELPqO6cS2yPXd+ADfHs7FWPQW0UYGFeMnHa/
      tlglO5Pxo7ek2iR57mazmx33cofIX6E/ZI9XLysp5TR6Npq1x8KCv2Dk2x3QSH8F54EQmQ2+
      5uDsPA9Hg1B+agkBh/1g3tfevT01cCtUkQGl2ubhrNGB2SiiyKgw9Ks0AL3TO0ul
      D69D18r6Y6s3pHQ9LYAs6EIq3/5dqNYW8eLQ5eINUIlHBp9ep8+quyqSfB3qPCBW
      Db+qI09pYhkTrGBD8l5eQqs1T1h2gJsY2yyYV/Cp2m4fI+uHItCgSlkPROnj27Xh
      p6HAPaFA0zWOz1lmVNYhTbJZlbbwYyf/OKmYuOklSuQ=
      -----END RSA PRIVATE KEY-----
    3. 发出以下命令。
      mydesktop$ cat id_rsa.pub
      样本系统响应为以下消息:
      ssh-rsaAAB3NzaC1yc2EAAAABIwAAAIEA9xjGJ+8DLrxSQfVxXYUx4lc9copCG4HwD3TLO5i
      fezBQx0e9UnIWNFi4Xan3S8mYd6L+TfCJkVZ+YplLAe367/vhc1nDzfNRPJ95YnATefj
      YEa48lElu7uq1uofM+sZ/b0p7fIWvIRRbuEDWHHUmneoX8U/ptKFZzRpb/
      vTE6nE= root@ps0701
  3. 在 SSH 服务器上的 /etc/ssh 目录中启用基于密钥的认证。
    1. 确保 sshd_config 文件中存在以下行:
      # Should we allow Identity (SSH version 1) authentication?
      	RSAAuthentication yes
        
      	# Should we allow Pubkey (SSH version 2) authentication?
      	PubkeyAuthentication yes
              
      	# Where do we look for authorized public keys?
      # If it doesn't start with a slash, then it is
      # relative to the user's home directory
      AuthorizedKeysFile .ssh/authorized_keys
    2. 重新启动 SSH 服务器。
  4. rsa.pub 文件复制到 SSH 服务器。
  5. 如果具有现有 authorized_keys 文件,请对其进行编辑以除去任何 no-pty 限制。
  6. 将公共密钥添加到 /.ssh 目录中的 authorized_keys 文件。
    发出以下命令。
    ssh-server$ cat ../id_rsa.pub >> authorized_keys
    注: 此命令将 RSA 公共密钥连接到 authorized_keys 文件。
    例如,$HOME/.ssh/authorized_keys。 如果此文件不存在,那么此命令会创建此文件。
  7. id_rsa 专用密钥文件复制到正在运行 Tivoli Directory Integrator 的客户机工作站。
  8. 设置专用密钥所有权值。如果 Tivoli Directory Integrator 服务器为 Unix 或 Linux,请使用 chmod 来将专用密钥许可权值设置为 600
    注:
    • 完成这些步骤。从客户机登录到服务器时,系统会提示您提供密钥口令而不是用户密码。
    • 如果安装的 ssh 使用 AES-128-CBC 密码,那么 RXA 无法从此文件访存专用密钥。基于 RSA 密钥的认证未运行。要支持基于 RSA 密钥的认证,请执行以下其中一项操作:
      • 安装使用 DES-EDE3-CBC 密码的 ssh。
      • 在环境中安装 RXA 2.3.0.9 软件包。RXA 2.3.0.9 支持 AES-128-CBC 密码。

        RXA 2.3.0.9 包含在 Tivoli Directory Integrator V7.1.1 的基本发行版中,还适用于 Tivoli Directory Integrator V7.0 FP8 和 Tivoli Directory Integrator V7.1 FP7。