如果用户的站点要实现基于主机的验证或用户公钥验证,则必须生成公钥/私钥对。有关其他选项,请参见 ssh-keygen(1) 手册页。
开始之前
向系统管理员询问是否配置了基于主机的验证。
mySystem% ssh-keygen -t rsa Generating public/private rsa key pair. …
其中,–t 是算法类型,可以是 rsa、dsa 或 rsa1。
缺省情况下,文件名 id_rsa(表示 RSA v2 密钥)显示在括号中。可通过按回车键或提供替代文件名来选择此文件。
Enter file in which to save the key (/home/username/.ssh/id_rsa):<Press Return>
通过将字符串 .pub 附加到私钥文件的名称后,可以自动创建公钥的文件名。
此口令短语用于加密私钥。强烈建议不要使用空项。请注意,键入口令短语时,它们不会显示。
Enter passphrase (empty for no passphrase): <Type passphrase>
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
% ls ~/.ssh id_rsa id_rsa.pub
此时,已创建公钥/私钥对。
现在即可登录到远程主机。有关详细信息,请参见如何使用安全 Shell 登录到远程主机。
% cat /etc/ssh/ssh_host_dsa_key.pub | ssh RemoteHost \ 'cat >> ~./ssh/known_hosts && echo "Host key copied"'
Enter password: <Type password> Host key copied %
在一行中键入以下命令(不带反斜杠)。
mySystem% cat $HOME/.ssh/id_rsa.pub | ssh myRemoteHost \ 'cat >> .ssh/authorized_keys && echo "Key copied"'
复制该文件后,将显示 "Key copied"(密钥已复制)消息。
Enter password: Type login password Key copied mySystem%
请参见如何减少安全 Shell 中的口令指示。有关更多信息,请参见 ssh-agent(1) 和 ssh-add(1) 手册页。