目的
SSH密钥为SSH提供额外的安全性,因为在使用SSH密钥时不需要使用密码。SSH密钥对由公钥和私钥组成,公钥和私钥都是一长串字符。公钥保存在要进行SSH连接的服务器中,私钥保存在请求SSH连接的系统中。
可以按照以下步骤在所有Linux OS操作系统上建立基于SSH key的认证。
1. 创建SSH密钥对
在请求SSH连接的服务器上,使用下面的命令生成一个密钥对。
# ssh-keygen -t rsa
该命令的示例输出如下:
您可以在生成密钥对时给出一个口令(密码)。密码短语为SSH密钥对增加了额外的安全性。
一旦执行了命令,公钥将相应地存储为id_rsa.pub和私钥在生成密钥对时指定的路径中作为id_rsa。
可以使用以下命令查看生成的公钥:
# cat ~/.ssh/id_rsa.pub
公钥的一般格式如下:
2. 为远程服务器设置自定义启动脚本
或者,在客户中心控制面板中,可以通过以下按钮下载SSH公钥私钥。
3. 将公钥复制到远程服务器
id_rsa.pub密钥需要复制到要建立SSH连接的服务器。 为此,您有两种选择。
·使用ssh-copy-id命令,其中user 是连接IP地址为123.123.123.123的服务器的用户名。
# ssh-copy-id user@123.123.123.123
注意:ssh-copy-id实用程序将连接到服务器123.123.123.123上的帐户,然后将复制 ~/.ssh/id_rsa.pub的内容。将密钥发布到远程帐户的 ~/.ssh directory中的authorized_keys目录。
·将公钥复制到服务器123.123.123.123中的 .ssh文件夹内的authorized_keys文件。
# cat ~/.ssh/id_rsa.pub | ssh user@123.123.123.123 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys
4. 测试SSH连接
将公钥添加到服务器之后,可以使用下面的命令从拥有私钥的计算机测试到服务器的SSH连接。
# ssh user@123.123.123.123
您将看到这样的消息:
这仅仅意味着您的本地计算机不能识别远程主机。这将在您第一次连接到一个新主机时出现。输入yes并按ENTER 继续。
您不会看到任何密码提示。但是,如果在生成SSH密钥对时设置了密码,可能会提示您输入密码短语。
5. 关闭SSH root直接登录功能(自选)
一旦您确认可以使用SSH密钥对访问服务器,您就可以继续通过SSH禁用对服务器的直接root登录。为此,可以遵循以下步骤。
1.打开SSH配置文件
# /etc/ssh/sshd_config
2.将 PermitRootLogin 更改为“no”
3.重启SSH
# service sshd restart