0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SSH第1部分:配置SSH以安全连接到远程设备

李鑫 来源:hzp_bbs 作者:hzp_bbs 2023-01-03 09:45 次阅读
Secure Shell (SSH) 协议通常用于远程管理,因为它在客户端和远程设备之间提供加密连接,并在两个系统之间启用加密的双向通信路径。几十年来,开发人员一直依靠 SSH 协议与 Linux ® /UNIX 环境和网络设备建立安全的命令行会话。随着物联网 (IoT) 设备的激增,设置 SSH 以启用安全登录比以往任何时候都更有用。

在客户端/服务器应用程序中使用 SSH

SSH 是客户端/服务器应用程序中使用的协议。服务器运行 SSH 服务器或守护进程,SSH 客户端默认安装在大多数 UNIX 和 Mac 系统以及最新版本的 Windows 上。还有其他免费和商业版本可提供附加功能,例如单独配置和保存频繁连接。PuTTY 是一种流行的免费 SSH 客户端,而 VanDyke Software 的 SecureCRT 是一种流行的商业客户端。

您可以将 SSH 用于需要与另一台设备建立安全远程连接的多项活动,例如:

  • 客户端和服务器之间的安全文件复制
  • 通过安全隧道重定向网络协议
  • 用于远程管理的交互式命令行实用程序

使用 SSH 安全地复制文件

您可以使用安全复制协议 (SCP) 或安全文件传输协议 (SFTP) 通过 SSH 复制文件。两者都通过 TCP 22 复制文件,但使用不同的协议。SSH 处理身份验证和加密。SFTP 是 SSH 协议的扩展,需要在服务器端增加一个 SFTP 服务器。SFTP 包括更强大的命令集,如列出远程目录和删除文件,这是 SCP 无法做到的。

通过 SSH 隧道重定向网络流量以实现安全远程管理

SSH 还支持多种其他功能,例如通过已建立的 SSH 隧道封装其他网络流量的能力。例如,在创建 SSH 隧道后,您可以指示不同的应用程序(如 Web 浏览器)通过特定端口连接到本地主机。然后,系统会将后续网络调用发送到目标服务器。这允许远程连接到网络而无需在 Internet 上公开该服务。

使用 SSH 的交互式命令满足您的远程管理安全需求

SSH 提供身份验证和加密功能,使您能够配置系统以满足您的安全要求。默认情况下,SSH 配置为用于用户名和密码身份验证,但您可以添加通过其他模块(如 OATH-TOTP)提供的公钥身份验证和额外的多因素身份验证 (MFA)。事实证明,多因素身份验证比单独使用密码更能抵御网络钓鱼攻击,因为 MFA 至少需要一个除密码之外的其他因素来确认身份。

SSH 服务器配置可以在命令行、每个用户或系统范围内通过一个名为 的文件进行配置SSH_config,该文件通常位于/etc/SSH/SSHd_config.

为用户名和密码身份验证配置 SSH 是最简单的。默认情况下,在许多设备上,您只需要在服务器上创建一个用户帐户,分配一个密码,确保安装并侦听 SSH 服务器守护程序,然后就可以开始了。

在客户端计算机上,使用以下命令远程登录到服务器:
ssh username@remotehost

当您首次登录新设备时,系统会向您显示无法验证您所连接的服务器或设备的真实性的警报。这是正常的,也是一种很好的安全措施。SSH 客户端将向您显示服务器提供的主机密钥。为确保您连接的服务器是您打算连接的实际服务器(而不是欺骗或中间人),您应该确认其身份。在服务器上,使用此命令输出服务器的身份公钥:

ssh-keygen -l -f

例如:

ssh-keygen -l -f ssh_host_ecdsa_key.pub

然后,将此命令的输出与 SSH 客户端提供给您的散列值进行比较。你只需要这样做一次。SSH 客户端会将此条目保存在文件中您之前登录的所有已知主机的列表中,~/.SSH/known_hosts并且只会在检测到不匹配时提醒您。

设置用于身份验证的证书稍微复杂一些,但是许多 Internet 站点都详细说明了所需的步骤。例如,https://ssh.com 上提供了一个非常好的演练。这些站点显示了为不同的 Linux 发行版安装和配置 SSH 和证书的细节。生成的密钥是实际凭证,与用户名和密码一样重要,应谨慎处理并妥善保护。这些证书将允许访问您的设备。

一般来说,步骤包括:

  1. 通过运行命令生成包含授权密钥和身份密钥的密钥对ssh-keygen默认情况下,ssh-keygen将创建一个新的身份(私有)和授权(公共)SSH 协议 2 RSA 密钥对到~/.ssh directory. 如果您在创建 SSH 密钥时选择输入密码,则在尝试使用该密钥登录远程计算机时将需要重新输入该密码。重新输入密码是一种很好的安全措施,因为密码会加密您的私钥并防止攻击者使用它。

    从客户端计算机上的命令行运行:
    ssh-keygen
  2. 将授权密钥从客户端计算机复制到服务器。使用 ssh 默认值,此密钥具有 .pub 扩展名,并且位于用户的 .ssh 目录中的身份密钥旁边。运行 ssh-keygen 生成 ssh 密钥后,在客户端计算机上运行此工具:

    ssh-copy-id username@remotehost

    此工具将在您的客户端计算机上查找密钥,并将登录到您指定的远程计算机并将密钥复制到(新)文件中,位于~/.ssh/authorized_keys

这样就以最简单的形式完成了这个过程。现在,当您登录该远程设备时,它将使用您的证书对您进行身份验证。

指定要使用的加密密码

SSH 还允许您指定要使用的加密密码。并不是所有的密码都是平等的,有些你应该避免。大多数现代 Linux 发行版默认使用可接受的加密密码,但旧设备可能不支持这些密码。要限制降级以删除不需要的密码,请编辑文件sshd_config并指定您希望支持的密码。如果您的服务器或设备支持更高版本的 OpenSSH,您可以运行以下命令来调用扩展测试模式,这将列出许多配置选项,包括启用了哪些加密算法

sshd -T

有关要使用的最佳对称算法、主机密钥、密钥交换和消息身份验证代码算法的当前指南,请参阅 OpenSSH 网站。美国国家标准与技术研究院 (NIST) 还提供了由于密钥长度不足或算法本身而应避免使用哪些加密算法的建议。

关键点:

SSH 是一个非常强大和有用的工具,可以连接到无数的设备。允许交互式登录的物联网设备将支持 SSH,您应该警惕在不受信任的网络上使用那些不支持的设备。

  • SSH 标准包括支持对 IoT 设备和云基础设施进行安全、远程管理的工具。
  • SSH 提供现代加密和身份验证控制,包括使用受密码保护的证书的多因素身份验证。
  • OpenSSH 实用程序套件提供了使用 SSH 远程管理 Linux 系统和网络设备所需的所有工具。


审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 服务器
    +关注

    关注

    12

    文章

    8125

    浏览量

    82556
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16348
  • SSH
    SSH
    +关注

    关注

    0

    文章

    177

    浏览量

    16081
收藏 人收藏

    评论

    相关推荐

    ssh连接

    Telne服务使用很方便,但是它是通过明文传递信息,所有安全性就不高,目前普遍使用的SSH(SecureShell)来进行远程管理 。SSH协议有S
    发表于 03-28 16:38

    如何通过SSH连接到Linux计算机?

    如何通过SSH连接到Linux计算机? SSH是一种加密的网络协议,用于在不可信的网络中安全远程访问和操作计算机。在Linux环境中,
    的头像 发表于 01-12 16:06 234次阅读

    嵌入式学习——ElfBoard ELF1板卡 ssh服务的搭建和使用的方法来了

    连接Linux服务器; (二)SSH默认端口是22号端口,安全协议版本SSHv2,出了SSHv2版本之外还有SSHv1版本(有漏洞,不安全)
    发表于 12-08 10:11

    【ELF 1开发板试用】+ 3.2 USB摄像头连接测试 + Ubutu SSH连接

    连接测试 本文继续做一下连接接口的测试,本文使用USB摄像头进行连接测试ELF 1 USB功能,以及其对应的摄像头视频流的处理反馈
    发表于 12-06 15:37

    【ELF 1开发板试用】+ 3.1 连接测试 + Powershell SSH连接

    连接测试 从 ELF1 教程文档\\\\01-教程文档\\\\01-0 ELF1、ELF1S开发板_快速启动手册_V1.pdf 中我们可知,
    发表于 12-05 23:25

    Serial、SSH、Rlogin、Telnet、Raw协议介绍

    SSH是较可靠,专为远程登录会话和其他网络服务提供安全性的文件传输协议。建立在应用层和传输层基础上。利用SSH协议可以有效防止远程管理过程中
    的头像 发表于 12-05 09:55 873次阅读

    SSH端口号是什么?SSH是如何工作的?

    安全隐患。随着人们对网络安全的重视,这些方式已经慢慢不被接受。SSH协议通过对网络数据进行加密和验证,在不安全的网络环境中提供了安全的登录
    的头像 发表于 11-10 10:06 1092次阅读
    <b class='flag-5'>SSH</b>端口号是什么?<b class='flag-5'>SSH</b>是如何工作的?

    NAS教程丨如何通过SSH访问TNAS

    SSH是一种安全远程登录及传输协议。ssh可用于远程登录、远程文件传输等。下面分享如何通过
    的头像 发表于 10-19 11:40 1073次阅读
    NAS教程丨如何通过<b class='flag-5'>SSH</b>访问TNAS

    轻量服务器怎么搭建ssh

    在搭建轻量服务器时,我们通常需要设置SSH登录,以便能够通过SSH客户端远程连接到服务器。下面是一些简单的步骤来帮助您搭建SSH。 第一步:
    的头像 发表于 10-10 09:59 349次阅读

    【触觉智能 Purple Pi OH 开发板体验】无网络状态连接ssh解决办法

    SSH代理服务器,可以访问内部网络资源,而无需直接将服务暴露在外部网络。这对于保护内部网络安全非常有用。 移动设备连接: 移动设备上也有
    发表于 08-20 12:38

    【linux篇】ubuntu下的SSH安装与使用

    ,在win端可以通过putty等一些ssh软件进行远程连接。win10系统也可以通过cmd打开dos串口,使用ssh命令。
    的头像 发表于 06-13 09:07 3484次阅读

    SSH/Telnet设备远程登录方式实际综合运用

    SSH和Telnet都是远程连接控制协议,在网络技术的应用中常被用于远程连接控制路由器和交换机,方便工程师
    发表于 06-11 09:12 668次阅读
    <b class='flag-5'>SSH</b>/Telnet<b class='flag-5'>设备</b><b class='flag-5'>远程</b>登录方式实际综合运用

    SSH命令详解

    ssh是一种安全远程登录及传输协议。ssh可用于远程登录、远程文件传输等。
    的头像 发表于 06-02 10:00 5864次阅读
    <b class='flag-5'>SSH</b>命令详解

    Linux上建立SSH安全连接的10种方法

    建立 SSH 安全连接的方法是通过 SSH (Secure Shell) 协议建立的加密通道,用于在服务器和客户机之间的安全通信。
    的头像 发表于 05-29 10:29 5025次阅读

    Linux中常用的6种SSH身份验证方法

    文件等。由于远程访问可能涉及到安全问题,因此 Linux 提供了多种身份验证方法来保护 SSH 连接安全性。本文将介绍 Linux 中常用
    的头像 发表于 05-12 14:42 2519次阅读