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

    文章

    8933

    浏览量

    85049
  • 客户端
    +关注

    关注

    1

    文章

    289

    浏览量

    16640
  • SSH
    SSH
    +关注

    关注

    0

    文章

    183

    浏览量

    16275
收藏 人收藏

    评论

    相关推荐

    详解SSH的工作原理

    SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。
    的头像 发表于 11-04 15:51 91次阅读
    详解<b class='flag-5'>SSH</b>的工作原理

    交换机如何配置SSH远程登录

    从事网络运维工作的小伙伴们都知道,在交换机正式上线时,必须完成配置SSH远程登录,这样做目的是为了日后,维护方便,不需要每次登录设备都要跑到机房,这样既不现实,又费事。
    的头像 发表于 10-10 14:33 606次阅读
    交换机如何<b class='flag-5'>配置</b><b class='flag-5'>SSH</b><b class='flag-5'>远程</b>登录

    飞凌嵌入式ElfBoard ELF 1板卡-常见网络服务搭建之SSH服务搭建

    客户端,常见的SSH客户端有 putty、SSH Secure Shell Client 等。 SSH特点 1.SSH安全的加密协议,用于
    发表于 09-27 09:06

    【龙芯2K0300蜂鸟板试用】远程SSH登录问题解决

    首先说下,一般linux开发板ssh远程登录是很基本的操作,因为更新程序,下载配置都需要这个步骤,但是按照常规操作,龙芯蜂鸟开发板死活ssh无法登陆。先看下过程,首先我
    发表于 08-12 22:16

    ssh连接

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

    工业级POE交换机的SSH配置步骤

    工业级POE交换机的SSH(Secure Shell)配置可以通过以下步骤进行:
    的头像 发表于 03-26 15:18 578次阅读
    工业级POE交换机的<b class='flag-5'>SSH</b><b class='flag-5'>配置</b>步骤

    怎么用SSH密钥登陆vps?

    使用SSH密钥登录VPS(Virtual Private Server)是一种更安全和方便的方式,相比使用密码,SSH密钥更难被破解。以下是在Linux系统上使用SSH密钥登录VPS的
    的头像 发表于 02-20 16:29 1029次阅读

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

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

    核桃派1B 开发板试用体验】连接wifi,并实现ssh远程登录

    pi@192.168.101.94 登录密码为pi,这样就成功登录到核桃派上,不需要用TTL转USB的线物理连接了: 【总结】 核桃派开发板带有wifi,可以简单配置后就可以连接上网,开发板的系统默认开通了
    发表于 01-02 11:49

    Ubuntu修改SSH默认端口指南

    修改SSH(Secure Shell)默认端口是一种增加系统安全性的方法,因为大多数攻击都是针对默认端口22进行的。以下是在Ubuntu系统上修改SSH默认端口的指南: 1、登录到服务
    的头像 发表于 12-21 17:27 1405次阅读

    嵌入式学习——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 2585次阅读

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

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