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 系统和网络设备所需的所有工具。


审核编辑:汤梓红

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

    关注

    13

    文章

    10094

    浏览量

    90870
  • 客户端
    +关注

    关注

    1

    文章

    305

    浏览量

    17411
  • SSH
    SSH
    +关注

    关注

    0

    文章

    198

    浏览量

    17568
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    SSH与Xshell的本质区别及功能对比

    、功能对比 功能维度 SSH协议 Xshell 核心定位 底层安全通信协议 SSH协议的图形化客户端工具 连接方式 命令行操作(如ssh u
    发表于 11-07 06:40

    【EASY EAI Nano-TB(RV1126B)开发板试用】通过wifi连接,使用ssh登录EASY EAI Nano-TB(RV1126B)开发板

    192.168.1.8,子网掩码(24):255.255.255.0- 可使用ssh登录。 配置“Session”,选择“SSH”,输入IP地址,最后点击“Open”即可,如下图所示。 首次
    发表于 11-02 17:18

    飞凌嵌入式ElfBoard-常用的网络服务的搭建之SSH服务搭建

    本地系统上安装SSH客户端,常见的SSH客户端有 putty、SSH Secure Shell Client 等。2.SSH有以下几个知识要点1
    发表于 10-24 08:48

    SSH 远程连接内网 Linux 服务器

    利用 ZeroNews,您可对用内网的 Linux 服务器进行统一的 SSH 远程连接管理,当用户外出时,可通过 ZeroNews 分配的公网域名地址,快速访问企业内部、家庭的 Linux
    的头像 发表于 09-17 19:52 277次阅读
    <b class='flag-5'>SSH</b> <b class='flag-5'>远程</b><b class='flag-5'>连接</b>内网 Linux 服务器

    【上海晶珩睿莓1开发板试用体验】2、系统信息+连接WIFI+SSH调试

    使用串口连接电脑调试 睿莓 1 上带有一个调试串口,使用 USB 转串口(TTL 电平),串口连接到睿莓 40pin 的 6 脚(GND),8 脚(TXD),10 脚(RXD)。另一端连接到
    发表于 08-17 09:55

    Aurix TC36x MTU SSH4 和 SSH9寄存器值错误的原因?

    即检查 MTU SSH 值(ECCD/FAULTS/ERRINFO),作为安全级别 3 测试的一部分 在测试过程中,我发现SSH4(CPU0Dlmu)和
    发表于 07-14 07:52

    精通远程控制:借助树莓派释放 SSH 的强大功能!

    什么是SSH?我们如何利用SSH连接到树莓派、对其进行监控并执行其他任务?注意:文章链接可能需要科学上网。通过SSH连接到树莓派是
    的头像 发表于 06-27 15:26 775次阅读
    精通<b class='flag-5'>远程</b>控制:借助树莓派释放 <b class='flag-5'>SSH</b> 的强大功能!

    SSH常用命令详解

    SSH常用命令详解
    的头像 发表于 06-04 11:30 1706次阅读

    SSH远程登录与控制教程

    SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行
    的头像 发表于 04-09 13:43 3948次阅读
    <b class='flag-5'>SSH</b><b class='flag-5'>远程</b>登录与控制教程

    [迅为]Linux开发小技巧:Remote - SSH插件

    [迅为]Linux开发小技巧:Remote - SSH插件
    的头像 发表于 04-01 15:46 933次阅读
    [迅为]Linux开发小技巧:Remote - <b class='flag-5'>SSH</b>插件

    stm32mp远程复制文件ssh不能连接怎么解决?

    1、看ubuntu环境中ssh是正在运行的,但是从ubuntu复制文件到开发板或者直接ssh连接无法连接,串口
    发表于 03-07 13:02

    信息安全管理必备!Linux系统使用SSH登录root账号的方法

    Linux远程管理信息安全必备!本文介绍各类Linux开发板/主板使用SSH登录root账号的方法,使用触觉智能RK3562开发板演示,关注触觉智能,持续为大家带来更多使用技巧!
    的头像 发表于 02-12 15:46 1114次阅读
    信息<b class='flag-5'>安全</b>管理必备!Linux系统使用<b class='flag-5'>SSH</b>登录root账号的方法

    禁止使用root用户通过ssh远程登录Linux

    1、背景描述 出于安全考虑,需要禁止使用root用户通过ssh远程登录Linux 禁用root用户远程登录后,需要提供一个权限用户用于
    的头像 发表于 12-21 16:25 2514次阅读
    禁止使用root用户通过<b class='flag-5'>ssh</b><b class='flag-5'>远程</b>登录Linux

    深入解析SSH协议,轻松实现安全高效的服务器管理

    过程中被窃听或篡改。SSH支持多种身份验证方法,包括密码、公钥和证书等,确保只有授权用户能够访问系统。除了远程登录,SSH还支持文件传输和端口转发等功能,使得
    的头像 发表于 12-19 13:40 1616次阅读

    Sermius SSH 使用,如何使用SermiusSSH进行工作?

    。小编给大家讲解如何使用SermiusSSH进行工作。 要在Termius中使用SSH连接到远程服务器,请按照以下步骤操作: 1.新建Host: 打开Termius。 点击左侧面板的“
    的头像 发表于 12-18 15:23 806次阅读
    Sermius <b class='flag-5'>SSH</b> 使用,如何使用SermiusSSH进行工作?