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 访问的上游社区,通常用于获取源代码控制提交的写访问权限。(同样,公钥通常会上传到中心站点并以自动方式传播。) 当然,我需要确保所有这些密钥的安全。我用密码保护所有(好吧,大多数)密钥,并小心谨慎地访问私钥文件。除了从我的工作…
2024年8月26日

使用公钥-私钥对的无密码 SSH

如果您经常使用 SSH 命令和远程主机,您可能会发现使用密钥对代替密码会很方便。远程系统无需在每次连接时都提示输入密码,而是可以使用公钥和私钥对自动协商身份验证。 私钥安全地保存在您自己的工作站上,而公钥则存放在您访问的每个远程系统上的特定位置。您的私钥可能在本地使用密码保护。本地缓存程序(例如ssh-agent或 )gnome-keyring允许您定期输入该密码,而不是每次使用密钥访问远程系统时都输入。 [ 免费下载:高级 Linux 命令备忘单。] 生成密钥对并传播公钥 生成密钥对并传播公钥其实比听起来简单得多。让我们来详细了解一下。 生成密钥 生成密钥对的最少工作包括运行命令ssh-keygen并在所有提示符下选择默认值: $ ssh-keygen Generating public/private rsa key pair. Enter fil…
2024年8月26日

Fabric – 通过 SSH 自动执行和部署 Linux 命令

在瞬息万变的软件开发世界中,高效的远程服务器管理至关重要。无论您是系统管理员、软件工程师还是软件开发人员,能够在远程服务器上运行 Linux 命令都是一项常见任务。 这就是Fabric 的作用所在,它是一个高级Python库,旨在通过 SSH 远程执行 Linux 命令,对于任何需要管理远程系统同时利用Python强大功能的人来说,它都是不可或缺的工具。 什么是 Fabric? Fabric是一个多功能的Python库,它简化了通过 SSH 连接在远程服务器上运行 shell 命令的过程。它最初由Jeff Forcier开发,后来成为一个开源项目。 它提供了一个用于与远程系统协作的高级 Pythonic 接口,使您可以轻松地跨多个服务器自动执行任务、部署代码和管理配置。 为什么要使用布料? 选择Fabric来满足您的远程命令执行需求有几个令人信服的理由…