分享到facebook
分享到linkedin
分享到twitter
分享到pinterest
分享到google

内容

SSH密钥有助于为您的网站添加一层安全保护。通常,客户端和服务器之间存在SSH连接(安全外壳)。此连接通过密码进行身份验证。并不是说现在密码不再安全。通过尝试不同的密码组合,可以很容易地将暴力破解到SSH服务器中。您认为黑客尝试输入8位数字的密码需要多长时间?在超级计算机中,这将是几分钟的时间,而在使用GPU的普通计算机中,则将是几天的时间。这意味着密码是一个安全漏洞。但是不用担心,有一种避免使用密码的方法。 SSH密钥

什么是SSH密钥?

SSH密钥是由PUBLIC KEY和PRIVATE KEY组成的加密密钥。此方法通过RSA加密进行工作,在该加密中,公共密钥可供所有公共用户用来加密数据,但是只有私有密钥才能解密该数据。至少现在(是。从技术上讲,您可以解密私钥,但是要花几年时间,比密码安全一些。通常,我们在浏览器和网络之间会看到这种加密。您具有访问服务器公共密钥的权限,该公共密钥又对您的数据进行加密。但是您不能解密它。这称为单向加密。

创建一个SSH密钥

首先,您需要知道您当前是否有任何密钥。为此,只需运行以下命令:

ls -l〜/ .ssh / id _ *。pub

这将告诉您当前是否有任何生成的密钥,如果结果返回为:那么找不到数据/文件,则可以使用已经生成的密钥或创建自己的密钥。

现在,使用以下代码生成密钥:

ssh-keygen -t rsa -b 4096 -C“ [email protected]

确保替换您的电子邮件地址。现在按Enter,将要求您创建一个密码短语。尽管它是可选的,但这增加了额外的安全性。您将看到以下输出:

输入密码(无密码时为空):

您的输出将与此类似

命令行输出

现在您可以运行

ls〜/ .ssh / id_ *

输出将是

/ home /您的用户名/.ssh/id_rsa / home /您的用户名/.ssh/id_rsa.pub

注意:到目前为止,所有这些都是在您的计算机中生成的,而不是在服务器中生成的。这很重要,因为以下命令会将您的用户与SSH密钥相关联。

将密钥与用户链接

ssh-copy-id remote_username @ server_ip_address

系统将提示您以下输出

remote_username @ server_ip_address的密码:

身份验证后, 〜/ .ssh / id_rsa.pub 将被复制到 〜/ .ssh / authorized_keys。如果您无法执行前面提到的命令,则可以同样地执行以下命令。

在服务器上,执行以下命令:

猫〜/ .ssh / id_rsa.pub | ssh remote_username @ server_ip_address“ mkdir -p〜/ .ssh && chmod 700〜/ .ssh && cat >>〜/ .ssh / authorized_keys && chmod 600〜/ .ssh / authorized_keys”

禁用使用密码的SSH登录

ssh sudo_user @ server_ip_address sudo nano / etc / ssh / sshd_config

找到以下几行并将其更改如下:

密码身份验证否质询响应身份验证否UsePAM否

终于跑

sudo systemctl重新启动ssh

您现在可以出发了。