如何为Ubuntu服务器设置无密码的SSH认证?

您可能需要长时间通过SSH连接到Linux服务器中。希望您已经将这些服务器设置为使用SSH密钥身份验证。为什么要这样做呢?因为这是使用SSH登录到远程数据中心服务器的最安全的方式。
如果没有,我想带你了解一下设置SSH密钥认证的过程,另外让你在登录时不用输入密码。
几乎所有支持SSH的客户端都可以完成此过程。我已经在Linux和macOS上成功测试了它。在远程端,我将使用Ubuntu Server 20.04进行演示。
如何创建您的SSH密钥对
首先要做的是生成您的SSH密钥对。此步骤在客户端进行。在Linux和macOS上,此过程完全相同。
登录到桌面客户端,打开终端窗口,然后发出以下命令:
ssh-keygen -t rsa -b 4096
通过添加-b 4096选项,我们正在生成一个强密钥。
确保为您的密钥对提供非常强大的密码短语。您想要一个无法被猜测的密码/口令。
您可能还考虑将此密钥对放置在非标准位置。为此,您始终可以创建一个隐藏目录,该目录的名称与SSH或安全性无关。使密钥对模糊不清。例如,您可以使用以下命令创建隐藏目录:
mkdir ~/.purple
在密钥创建的命名阶段,您将输入以下内容:
/home/USER/.purple/custom_key
USER是您的用户名。
或者,在macOS上:
/Users/USER/.purple/custom_key
USER是您的用户名。
生成密钥后,可以使用以下命令将其复制到服务器:
ssh-copy-id SERVER
其中SERVER是远程服务器的IP地址或域。
如果您选择使用自定义键,则该命令将类似于:
ssh-copy-id -i ~/.purple/custom_key SERVER
其中SERVER是远程服务器的IP地址或域。
注意:如果使用自定义SSH密钥,则登录到远程服务器的过程会有所不同。该命令不仅是ssh USER @ SERVER(其中USER是用户名,SERVER是远程服务器的IP地址或域),命令将是(遵循我们的示例):
ssh -i ~/.purple/custom_key USER@SERVER
其中USER是用户名,而SERVER是远程服务器的IP地址或域。
如何使登录无密码
首先,我要说您需要确保两件事:
您的桌面客户端登录密码很强。您不希望人们能够轻松访问具有无密码SSH密钥身份验证设置的桌面客户端。
每次离开桌面客户端时,都将其锁定或注销。不要在桌面未锁定的情况下走开,否则任何人都可以打开终端并通过SSH连接到您的服务器。
考虑这两项对成功实现客户端到服务器安全性至关重要。
有两种方法可以使这项工作。第一种方法可以在Linux桌面客户端上完成,而第二种方法在Linux和macOS上均可使用。
让我告诉您如何使用第一个选项。将SSH密钥复制到服务器后,您将希望首次将SSH SSH到该服务器。完成后,将出现一个弹出窗口,要求您输入SSH密码(如下图)。
在这里插入图片描述

使用密钥验证通过SSH登录到远程Linux服务器。
请注意,无论我何时登录,都会自动解锁此键的复选框。选中该框,键入密码,然后单击解锁。通过在每次登录时选中“自动解锁此密钥”复选框,您将不必费心键入SSH密钥密码即可将外壳保护到该远程服务器。即使您注销或重新启动该客户端计算机,您仍然不必键入用于对该Ubuntu Server进行SSH密钥身份验证的密码。
第二种方法需要使用ssh-add命令,该命令将私钥身份添加到OpenSSH身份验证代理。因此,在Linux或macOS终端上,发出命令:
ssh-add .ssh/id_rsa
或者,如果您创建了自定义键(我们将继续使用上面的示例),则将发出类似以下的命令:
ssh-add ~/.purple/custom_key
现在,下次您从任一客户端通过SSH进入该远程服务器时,都无需输入SSH密钥身份验证密码。
上面方法的问题在于,它并不总是作为每个Linux桌面客户端的永久解决方案。如果发现这种情况,可以始终使用以下命令安装密钥文件:
sudo apt-get install keyfile -y
安装该应用程序后,您需要在.bashrc文件的底部添加几行。使用以下命令打开该文件:
nano ~/.bashrc
在文件底部,添加以下两行:
/usr/bin/keychain $HOME/.ssh/id_dsa
source H O M E / . k e y c h a i n / HOME/.keychain/ HOME/.keychain/HOSTNAME-sh
如果您使用自定义键,则这两行看起来像(遵循我们的示例):
/usr/bin/keychain $HOME/.purple/custom_key
source H O M E / . k e y c h a i n / HOME/.keychain/ HOME/.keychain/HOSTNAME-sh
保存并关闭文件。关闭并重新打开终端,登录远程Linux服务器时不必键入SSH密钥身份验证密码。唯一需要输入该密码的时间是重新启动后首次打开终端窗口时。
使用此方法的一个警告是,每次打开终端窗口时,都会看到显示的Keyfile输出(如下图)。
在这里插入图片描述
密钥文件输出显示在Linux终端窗口中。
再次提醒您,必须明智地使用此设置。不要让您的桌面处于未锁定状态,并确保您的桌面登录密码口令非常严格。
A5互联https://www.a5idc.net/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值