2024年8月26日

Tmate – 与 Linux 用户安全地共享 SSH 终端会话

tmate是tmux (终端多路复用器)的克隆版本,它通过 SSH 连接提供安全、即时且易于使用的终端共享解决方案。它建立在tmux之上;您可以在同一系统上运行这两个终端仿真器。您可以使用 tmate.io 上的官方服务器,也可以托管您自己的 tmate 服务器。 下图显示了tmate的不同组件的简化架构图(从项目网站获得)。 tmate – 简化架构图 Tmate 如何运作? 启动Tmate时,会先通过libssh在后台与tmate.io服务器建立ssh连接,建立连接后会为每个会话生成一个150位的会话令牌,受信任的用户可以使用该令牌访问终端会话。 如何在 Linux 中安装 Tmate 可以使用包管理器从大多数 Linux 发行版的默认存储库中安装Tmate ,如图所示。 在基于Debian和Ubuntu的 Linux 发行版中,使用以下 PPA 安装Tmat…
2024年8月26日

SSH 如何建立安全通信

当我们发送敏感信息/信件时,我们希望它对外界保密。因此,我们确保它受到保护,方法是将其密封在信封中,然后使用美国邮政服务 (USPS) 将其发送到目的地。至少,这是我们过去发送信息的方式。我甚至没有参与有关加密和摩尔斯电码的讨论,它们使用了更高级的保密级别。 现在,由于人类已经进化并适应了互联网,我们使用安全连接来交换信息。以前,我们使用 telnet 连接到使用端口 23 的远程服务器。问题是我们通过纯文本发送信息,这意味着任何想要阅读信息的人都可以嗅探网络,信息就会被泄露(相当于他们可以打开通过 USPS 发送的信件并阅读它。) 这个结果并不是我们在发送原始消息时想要的。总得有一种安全的方法将消息发送到远程服务器吧?当然,解决方案是通过安全外壳 (SSH) 发送。 SSH 如何发送加密消息 图像 因此,我希望使用加密消息从客户端到服务器进…
2024年8月26日

使用 ProxyJump 通过代理或堡垒通过 SSH 连接到远程主机

堡垒主机的概念对计算来说并不新鲜。堡垒主机通常是面向公众的强化系统,可作为防火墙或其他受限制位置后面的系统的入口点,它们在云计算兴起时尤其受欢迎。 该ssh命令提供了一种简单的方法,可以使用单个命令利用堡垒主机连接到远程主机。无需先通过 SSH 连接到堡垒主机,然后ssh在堡垒上使用连接到远程主机,而是ssh可以使用 自行创建初始连接和第二个连接ProxyJump。 ProxyJump ProxyJump或 标志-J是在ssh版本 7.3 中引入的。要使用它,请在标志后指定要连接的堡垒主机-J,以及远程主机: $ ssh -J <bastion-host> <remote-host> 如果主机之间的用户名和端口不同,您还可以设置特定的用户名和端口: $ ssh -J user@<bastion:port&g…
2024年8月26日

SSHFS:通过 SSH 挂载远程文件系统

SSHFS 本身是用户空间 ( FUSE )中的文件系统,它使用 SSH 文件传输协议 (SFTP) 来挂载远程文件系统。该sshfs命令是一个客户端工具,用于使用 SSHFS 在您的计算机上本地挂载来自另一台服务器的远程文件系统。 注意: 用户空间(或用户区)是所有在内核之外运行的操作系统代码。 虽然不如本地文件系统那么高效,但sshfs它是使用本地程序和工具处理另一台计算机上的文件的简单方法。最重要的是,它sshfs可以由本地计算机上的非特权用户使用(事实上,建议在使用时不要使用 root 用户或提升权限sshfs),并且除了启用 SFTP 的 SSH(一种常见设置)之外,它不需要远程计算机上的任何特殊软件。 安装sshfs 该sshfs 工具可从大多数发行版的标准存储库获得,并且最容易使用该发行版的包管理器进行安装。对于 Fedora,…
2024年8月26日

如何使用 Puma 和 Foreman 设置零停机时间 Rails 部署

介绍 Puma是一款高效的 Ruby Web 服务器,能够很好地处理 Rack 应用(例如 Rails)。Puma 使用线程和/或工作线程提供并发性。您可以使用 Puma 的集群模式(使用工作线程)部署应用而无需停机。Puma 将逐个重新启动工作线程,在此期间其他工作线程将继续处理。这很好,因为当您将更新部署到应用时,您的用户将不再看到延迟响应或错误页面。 在本指南中,我们将使用以下内容: Puma作为我们的网络服务器 负责管理我们的应用程序(这不是绝对必要的,但它确实使生活变得更轻松) Capistrano部署(部署说明相当通用,可以轻松地重新应用于其他方法) 本指南假设您已有一个要使用的现有 Rails 应用程序。如果您还没有开始,请参阅Rails 入门指南。本指南还假设您正在使用 Ubuntu;请在此处阅读如何设置它。我们将在本指南中使用Ups…
2024年8月26日

如何使用 Git 部署 Jekyll 博客

介绍 Jekyll是一款从 Markdown 文件目录生成静态 HTML 网站的工具。此功能非常方便,因为生成的网站速度快、可移植性强,并且 nginx 等服务器可以轻松同时为许多用户提供服务,而无需使用缓存。 使用 Jekyll 最流行的方式是将您网站的文件保存在Git存储库中,在本地编辑它们,然后使用git push将网站部署到您的 VPS。 本地安装 如果还没有,您需要在本地机器上安装 Ruby、Jekyll 和 Git。 对于 Ruby,您可以使用单个命令使用 RVM 安装最新版本的 Ruby 2.0: curl -L https://get.rvm.io | bash -s stable --ruby=2.0.0 完成后(需要几分钟),注销并重新登录。安装 Jekyll 很简单,只需获取 gem 即可jekyll。 gem install jekyll 现在你需要 Git,你可以从…
2024年8月26日

如何在 HTML 中使用 rel 属性作为链接标签

介绍 rel链接标签 ( ) 内的属性描述<link>了链接资源的关系。rel可以采用以下 16 个值之一。让我们全部检查一下。 先决条件 HTML5 的一般知识。如需全面了解 HTML5 标记语言,请浏览我们的系列文章《如何使用 HTML 构建网站》。 使用<rel>链接标签的属性 以下是该属性在标签rel内可以接受的16 个值:<link> alternate:文档的替代版本。 author:文档的作者。 dns-prefetch:应该为链接资源预取 DNS 查找和握手。 help:有关整个文档的帮助资源。 icon:图标资源。 license:许可和法律信息。 manifest:Web App Manifest文档。 next:本系列的下一个文档。 pingback:外部资源要求在评论中进行 pingback。 preconnec…
2024年8月26日

命令行上的 SSH 文件复制小魔法

Linux 系统管理员每天都会使用 SSH 从一个系统连接到另一个系统。原因是它是用于安全连接到 Linux 系统的事实上的协议。它之所以安全是因为系统之间的所有通信(包括初始登录交换)都是加密的。如今,我们系统管理员使用 Telnet 的唯一目的就是测试与 Web 服务器或某个远程端口的远程连接。好吧,我承认,我曾使用 Telnet 破解过一两个电子邮件服务器,但那是另一个故事了。我离题了。您还可以使用与 SSH 相关的命令通过 SFTP 或 SCP 在主机之间传输文件,无论是传输到远程系统还是从远程系统传输。但我即将向您展示一个很酷的 SSH 魔术,它将让您的朋友印象深刻,甚至可能让 Penn 和 Teller 对您是如何做到的感到困惑。 注意:此过程涉及主机之间交换 SSH 密钥,结果是您不再需要输入密码来建立连接。 先决条件:SSH 密钥生成 在执行这个神奇的…
2024年8月26日

锁定 sshd

SSH(即安全外壳)在 20 世纪 90 年代取代Telnet成为首选的远程访问协议,这是有充分理由的。SSH 允许管理员(或用户)通过安全隧道访问远程外壳,方法是将其 SSH 客户端连接到 SSH 服务器。SSH 还可以处理文件传输,这应该会取代 FTP,尽管令人惊讶的是,许多情况下仍然依赖于老式的明文 FTP。 为什么?呃。 出于上述原因,现代 Linux 系统通过 SSH 进行管理。大多数经验丰富的系统管理员都喜欢通过相对轻松地安全连接到系统 shell 来获得直接访问权限和能力。在本文中,我将专门讨论OpenSSH服务器守护程序sshd。我们将介绍您可能遇到的一些安全问题,以及如何缓解或彻底解决这些问题。 为什么我们需要 SSH 正如我所提到的,SSH 是一个强大的工具。通过 SSH 会话,您可以将虚拟终端直接连接到目标系统。如果落入坏人之手,这种能力可…
2024年8月26日

如何管理多个 SSH 密钥对

我与之交互的某些网站使用 SSH 密钥而不是密码进行访问。与密码一样,我会尝试有意识地决定密码短语,以及何时重新使用或创建新密钥。 为了管理这些密钥,我使用了命令行选项、配置设置和密码缓存代理的组合。 为什么要使用不同的密钥对? 我目前有大约六个地方经常使用 SSH 密钥,还有一些其他不太常访问的地方。具体来说,我使用不同的密钥对来执行以下操作: 我的每一位咨询客户。 实验室或测试环境。 使用共享密钥的培训教室和类似环境。 我管理的网络将公钥加载到身份管理系统中,然后将其传播到我以交互方式访问的系统。 每个允许 SSH 访问的上游社区,通常用于获取源代码控制提交的写访问权限。(同样,公钥通常会上传到中心站点并以自动方式传播。) 当然,我需要确保所有这些密钥的安全。我用密码保护所有(好吧,大多数)密钥,并小心谨慎地访问私钥文件。除了从我的工作…