他们被要求提供密码,他们输入密码,然后他们就连接到了Sulaco。他们的命令行提示符会更改以确认这一点。
这就是我们需要的全部确认。因此,用户Dave可以使用exit命令断开与Sulaco的连接:
exit
他们收到断开消息,命令行提示符返回到dave@Howtogeek。
相关:如何从Windows、MacOS或Linux连接到SSH服务器
创建一对SSH密钥
这些说明在Linux的Ubuntu、Fedora和Manjaro发行版上进行了测试。在所有情况下,该过程都是相同的,并且不需要在任何测试机器上安装任何新软件。
要生成SSH密钥,请键入以下命令:
ssh-keygen
生成过程开始。系统将询问您希望将SSH密钥存储在何处。按Enter键接受默认位置。该文件夹的权限将保护它,仅供您使用。
现在将要求您提供密码短语。我们强烈建议您在此处输入密码。记住这是什么!您可以按Enter键不使用密码,但这不是一个好主意。由三四个互不相连的单词组成的密码短语,串在一起就是一个非常结实的密码短语。
系统将要求您再次输入相同的密码,以验证您输入的内容是否与您认为输入的内容相同。
系统会为您生成并存储SSH密钥。
您可以忽略显示的“随机艺术”。某些远程计算机可能会在您每次连接时向您显示它们的随机图片。其想法是,您将识别随机ART是否更改,并对连接持怀疑态度,因为这意味着该服务器的SSH密钥已被更改。
安装公钥
我们需要在远程计算机Sulaco上安装您的公钥,以便它知道公钥属于您。
我们使用ssh-copy-id命令完成此操作。此命令与常规ssh命令一样连接到远程计算机,但它不允许您登录,而是传输公共SSH密钥。
ssh-copy-id dave@sulaco
虽然您没有登录到远程计算机,但您仍然必须使用密码进行身份验证。远程计算机必须标识新SSH密钥属于哪个用户帐户。
请注意,您必须在此处提供的密码是您正在登录的用户帐户的密码。这不是您刚刚创建的密码。
验证密码后,ssh-copy-id会将您的公钥传输到远程计算机。
您将返回到计算机的命令提示符。您没有继续连接到远程计算机。
使用SSH密钥进行连接
让我们按照建议操作,并尝试连接到远程计算机。
ssh dave@sulaco
因为连接过程将需要访问您的私钥,并且您在密码后面保护了SSH密钥,所以您需要提供您的密码才能继续连接。
输入您的密码,然后单击解锁按钮。
在终端会话中输入密码短语后,只要终端窗口处于打开状态,您就不必再次输入密码。您可以根据需要连接和断开任意多个远程会话,而无需再次输入密码。
您可以勾选“每当我登录时自动解锁此密钥”选项的复选框,但这会降低您的安全性。如果您的计算机无人值守,任何人都可以连接到拥有您的公钥的远程计算机。
输入密码短语后,即可连接到远程计算机。
要再次端到端验证该过程,请使用exit命令断开连接,然后从同一终端窗口重新连接到远程计算机。
ssh dave@sulaco
您将无需密码或口令短语即可连接到远程计算机。
没有密码,但增强了安全性
网络安全专家谈到了一种叫做安全摩擦的东西。这是您需要忍受的小痛苦,以获得更高的安全性。通常需要额外的一两个步骤才能采用更安全的工作方法。而且大多数人都不喜欢这样。他们实际上更喜欢更低的安全性和更少的摩擦。这是人类的本性。
使用SSH密钥,您可以获得更高的安全性和便利性。这绝对是双赢。