了解并实施无密码的SSH

282 阅读8分钟

在线隐私和安全是我们这个时代的重要考虑因素。信息的高价值使得人们需要实施更好的安全实践和策略。

安全壳主机协议(SSH)是用于保护不安全网络中数据的重要安全协议之一。这个基于密码的协议已经发展成一个无密码的替代品,以增加其弹性。

你将学到的内容

  1. 什么是无密码的SSH?
  2. 无密码SSH的工作原理。
  3. 它的使用情况。
  4. 设置无密码SSH。
  5. 无密码SSH的优点和缺点。

什么是无密码的SSH

安全壳或安全套接字壳协议(SSH)是Yatu Ylonen在1995年编写的一个基于加密的网络协议。该协议适用于在两个设备之间建立安全连接,即客户端和服务器。SSH可以使用几种认证技术来实现。两种广泛使用的技术是基于公共/私钥(加密)的认证和基于密码的认证。

无密码的SSH协议使用一个过程,你的设备与远程计算机建立连接,不需要你键入密码。这种改进的替代方法消除了使用难以回忆的复杂密码的需要。因此,无密码SSH协议可以保护其用户免受基于密码的常见攻击。

无密码SSH协议的工作原理

无密码SSH协议利用SSH客户端发送加密密钥到客户端设备和从客户端设备发送。密钥交换程序不使用密码,因为它使用公钥密码学原理。

公钥是由私钥生成的一长串随机字符。顾名思义,公钥可以被任何人分享。使用无密码SSH协议建立安全连接的过程遵循以下步骤。

  1. 用户向服务器发送他们的用户名和公钥。
  2. 服务器用从用户那里收到的公钥加密的信息进行回应。
  3. 用户用其私钥对服务器的信息进行解密。
  4. 用户将解密后的信息发送给服务器,由服务器确定该信息是否有效。
  5. 如果信息与服务器上的信息相匹配,服务器就会认证用户并在两个设备之间建立安全连接。
  6. 由于未来的连接是自动的,用户不需要重复第一步所述的用户名提交过程。

缺乏密码是喜欢无密码SSH而不是基于密码的替代方案的主要原因之一。

SSH的使用情况

SSH协议是访问和管理基于Linux的服务器的远程标准方法。许多企业组织利用该协议来管理他们的网络服务器。

在使用SSH协议的服务器上执行的一些管理功能包括。

  • 通过SSH文件传输协议(SFTP)通过SSH发送和接收文件。
  • 访问和执行用户数据库的CRUD(创建、读取、更新和删除)功能。
  • 在服务器和其他第三方网络应用程序上安装或更新软件。
  • 备份服务器上的数据。
  • 运行远程CLI命令。
  • 在出现任何技术故障的情况下,对服务器进行故障排除。

设置无密码的SSH

现在是时候深入到Linux上设置无密码协议了。让我们开始吧!

如果你使用的是基于Unix的操作系统,如Windows,你可以使用Putty等SSH客户端软件。

第一步:生成你的SSH密钥对

我们之前提到,在设置过程中,你必须有一个密码来建立你的第一个连接。然而,在这第一个过程之后,你将不需要密码,因为你的认证密钥被保存在一个名为~/.ssh. 的目录中。

在创建密钥后,它被保存在一个名为/id_rsa.pub. 的文件中。 创建你的密钥对将需要你使用以下命令。

ssh-keygen -t [algorithm] -b [keysize]

上述命令允许你指定要使用的密钥生成算法和密钥大小。如果你选择使用RSA算法,应遵循以下语法。

ssh-keygen -t RSA -b 4096.

你可以选择添加你的电子邮件地址以提高安全性。

ssh-keygen -t RSA -b 4096 -C "email-address@somepage.com"

第2步:将公钥上传到主机服务器上

这个过程为服务器提供了识别你的设备所需的东西。因此,你可以使用你的SSH认证密钥远程访问服务器。认证密钥取代了基于密码的系统中使用的密码。当你希望向主机发送你的授权ID和公钥时,使用这个命令。

ssh-copy-id [your_username]@[remote_server_ip_address]

第3步:测试以确保一切正常工作

在授权和建立连接阶段之后,你应该检查连接是否正常。如果连接的功能符合预期,你就可以登录到你的服务器而不需要密码。要使用SSH建立连接,请使用以下命令。

ssh [your_username]@[remote_server_ip_address]

无密码SSH的优点

1.改善用户体验

无密码SSH提高了用户体验,因为它消除了用户记忆复杂或冗长密码的需要。根据NordPass的统计,互联网用户平均至少有10个密码。拥有许多密码使得人们在登录系统时很容易忘记密码。无密码SSH通过消除记忆密码的需要,为用户节省了时间。

2.解决了密码被盗的问题

无密码SSH意味着不再需要密码。因此,利用该协议的用户不需要担心密码被盗或被破坏。此外,无密码SSH将因你的网站或应用程序的数据泄露而导致的法律诉讼的风险降到最低。

3.保护免受暴力攻击

暴力攻击包括攻击者猜测字符以形成密码。这种技术在基于密码的协议上几乎是无法实现的,如无密码SSH。无密码SSH使用一个加密密钥,使暴力攻击变得很麻烦。加密密钥是由数学公式创建的,这些公式在一个方向上容易计算,但在相反的方向上计算起来却很麻烦。因此,一旦密钥被生成,攻击者要对生成过程进行反向工程是很麻烦的。

4.从长远来看,有助于降低运营成本

无密码认证解决方案降低了整体安全成本。一个组织不需要在需要维护和管理的认证服务器上存储密码而产生费用。该协议还解放了IT部门,因为他们不再需要重新定义密码政策。IT部门也不需要监控用户活动或检测和防止密码泄露。

无密码SSH的劣势

1.设备被盗后难以保护用户

用于实现无密码SSH的认证密钥被保留在设备中。在设备被盗后,一个人可以访问和使用你的连接,因为他们可以访问你的设备。一些实现无密码SSH认证的系统使用OTP,主要通过短信发送。因此,用户必须保护他们的SIM卡和手机。当有人偷了你的设备,他们可以拦截OTP和验证登录会话的神奇链接,从而损害你的安全。

2.不情愿的用户

由于安全问题,没有多少用户接受了无密码认证。这可能是由于无知和围绕该技术的错误假设。对大多数用户来说,该协议看起来是一种很容易被绕过的方法,因为不涉及密码。

3.实施成本高

有一些免费软件公司提供无密码SSH的免费实施。但是,没有人愿意把自己的网站或应用程序的安全性委托给免费工具。大多数为企业提供部署无密码SSH协议相关服务的供应商,每月收取25美元到1000美元的协议设置费用。雇用专业人员设置协议所产生的费用促使许多企业和组织选择基于密码的认证,因为它既便宜又能快速完成。

4.它不能防止恶意软件

一些使用无密码SSH认证的系统需要OTP。诸如读屏器和键盘记录器等恶意软件可以拦截OTP和魔法链接,从而损害系统的安全性。

总结

在这篇文章中,我们了解了无密码SSH协议的基本功能。我们研究了它的优点和缺点,以及为什么它比基于密码的认证系统更好的原因。此外,我们还了解了在本地设备上设置无密码SSH协议的情况。你应该注意到,无密码SSH协议比其基于密码的替代品拥有更多优势。因此,它在科技界的采用将是迅速和不可避免的。

我希望你喜欢阅读这篇文章。衷心祝愿

参考文献