在 Oracle® Solaris 11.2 中管理安全 Shell 访问

退出打印视图

更新时间: 2014 年 9 月
 
 

如何生成用于安全 Shell 的公钥/私钥对

如果用户的站点要实现基于主机的验证或用户公钥验证,则必须生成公钥/私钥对。有关其他选项,请参见 ssh-keygen(1) 手册页。

开始之前

向系统管理员询问是否配置了基于主机的验证。

  1. 启动密钥生成程序。
    mySystem% ssh-keygen -t rsa
    Generating public/private rsa key pair.
    …

    其中,–t 是算法类型,可以是 rsadsarsa1

  2. 指定将保存密钥的文件的路径。

    缺省情况下,文件名 id_rsa(表示 RSA v2 密钥)显示在括号中。可通过按回车键或提供替代文件名来选择此文件。

    Enter file in which to save the key (/home/username/.ssh/id_rsa):<Press Return>

    通过将字符串 .pub 附加到私钥文件的名称后,可以自动创建公钥的文件名。

  3. 键入口令短语以使用密钥。

    此口令短语用于加密私钥。强烈建议不要使用空项。请注意,键入口令短语时,它们不会显示。

    Enter passphrase (empty for no passphrase): <Type passphrase>
  4. 重新键入口令短语以进行确认。
    Enter same passphrase again: <Type passphrase>
    Your identification has been saved in /home/username/.ssh/id_rsa.
    Your public key has been saved in /home/username/.ssh/id_rsa.pub.
    The key fingerprint is:
    0e:fb:3d:57:71:73:bf:58:b8:eb:f3:a3:aa:df:e0:d1 username@my
    
    System
  5. 检查密钥文件的路径是否正确。
    % ls ~/.ssh
    id_rsa
    id_rsa.pub

    此时,已创建公钥/私钥对。

  6. 根据您的网络的验证方法,通过使用相应的选项来登录远程主机。
    • 如果管理员已配置了基于主机的验证,则可能需要将本地主机的公钥复制到远程主机。

      现在即可登录到远程主机。有关详细信息,请参见如何使用安全 Shell 登录到远程主机

      1. 在一行中键入以下命令(不带反斜杠)。
        % cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \
        'cat >> ~./ssh/known_hosts && echo "Host key copied"'
      2. 出现提示时,提供登录口令。
        Enter password: <Type password>
        Host key copied
        %
    • 如果站点使用公钥进行用户验证,请在远程主机上填充 authorized_keys 文件。
      1. 将公钥复制到远程主机。

        在一行中键入以下命令(不带反斜杠)。

        mySystem% cat $HOME/.ssh/id_rsa.pub | ssh myRemoteHost \
        'cat >> .ssh/authorized_keys && echo "Key copied"'

        复制该文件后,将显示 "Key copied"(密钥已复制)消息。

      2. 出现提示时,提供登录口令。
        Enter password: Type login password
        Key copied
        mySystem%
  7. (u53ef选) 避免在将来提示输入口令短语。

    请参见如何减少安全 Shell 中的口令指示。有关更多信息,请参见 ssh-agent(1)ssh-add(1) 手册页。