Linux
SSH(安全外壳)是Linux生态系统中的基础工具,用于远程访问、安全文件传输、自动化和服务器管理。虽然大多数用户通过ssh命令与SSH交互,但在后台 SSH依赖于公钥和私钥对进行身份验证——特别是在无密码登录、自动化和DevOps实践至关重要的环境中。 默认SSH密钥存储位置 SSH密钥最常存储的位置是: ~/.ssh/ 这指的是用户主文件夹中的.ssh目录,例如: /home/username/.ssh/ 此目录中的常见文件: 文件 目的 id_rsa 默认私钥(RSA) id_rsa.pub 匹配的公钥 id_ecdsa, id_ed25519 其他私钥(ECDSA, Ed25519) id_*.pub 对应的公钥 authorized_keys 存储允许连接的公钥 known_hosts 存储服务器指纹(主机密钥验证) config 用户特定的SSH客户端配置 如果您使用ssh-keygen生成密钥,默认情况下它们存储在这里,除非指定了路径。 系统范围的SSH密钥位置 SSH服务器(sshd)主机密钥 由SSH守护进程(服务器端)使用的系统范围密钥: /etc/ssh/ 典型文件: 文件 目的 ssh_host_rsa_key 主机私钥(RSA) ssh_host_rsa_key.pub 主机公钥 ssh_host_ecdsa_key ECDSA主机私钥 ssh_host_ed25519_key Ed25519主机私钥 这些密钥用于识别服务器到客户端,而不是用于验证用户。 SSH守护进程(sshd)在连接期间提供主机公钥;客户端将其与~/.ssh/known_hosts进行比较。 自定义密钥位置 您可以从任何位置生成或使用SSH密钥,但必须指定路径: ssh -i /path/to/custom_key user@host 您还可以通过~/.ssh/config配置多个密钥: Host myserver HostName 192.168.1.100 […]
Linux系统安全和多用户架构的一个关键基础是其文件权限模型。与Windows不同,Linux严格执行系统中每个文件和目录的所有权和访问控制。掌握文件权限不仅关乎安全——它对于管理服务器、部署软件、运行脚本和自动化任务至关重要。 Linux文件权限模型 Linux中的每个文件和目录都有三种类型的访问权限,分配给三种类型的用户: 用户类别 描述 所有者 拥有文件的用户 组 文件组中的用户 其他 系统中的所有其他用户 每个类别可以被赋予三种类型的权限: 权限 符号 含义 读取 r 查看文件内容 / 列出目录 写入 w 修改文件或目录 执行 x 运行文件或访问目录 使用ls -l查看权限 使用ls -l命令显示文件权限: ls -l myscript.sh 输出: -rwxr-xr– 1 alice devs 2048 Jan 25 10:00 myscript.sh 细分: – → 常规文件 rwx → 所有者(读取/写入/执行) r-x → 组(读取/执行) r– […]
重命名文件是任何操作系统中最常见的任务之一——在 Linux 中,通过终端进行重命名时尤其强大。从简单的名称更改到使用模式的复杂批处理操作,重命名是一个必不可少的工具,用于: 按日期、类型或项目 组织文件 自动清理 日志、备份或临时数据 标准化文件名 用于脚本、部署或 APIs 在开发、研究或数据科学环境中 预处理数据 集成到 CI/CD、图像处理或版本控制的管道中 无论您是重命名数千个图像文件的开发人员,清理旋转日志的系统管理员,还是为部署准备工件的 DevOps 工程师——了解如何在终端中高效重命名文件将节省时间,减少错误,并在规模上解锁自动化。 使用 mv 进行基本文件重命名 mv(移动)命令是重命名文件的标准方法: mv old_filename.txt new_filename.txt 这适用于: 重命名文件 将文件移动到新目录 同时进行这两项操作 示例: mv file.txt ../archive/renamed_file.txt 重命名多个文件 — 高级技术 1. 🔁 使用 rename(基于 Perl) 最强大和灵活的方法。 安装(如果缺失): sudo apt install rename # Debian/Ubuntu sudo dnf install prename # RHEL/Fedora 基本用法: […]
在Linux中,“更改用户”这个短语可以描述几种不同的操作——有些是临时和基于会话的,有些是永久和系统范围的。由于Linux是一个多用户操作系统,它提供了多种切换身份和权限的方法,具体取决于您想要实现的目标:管理服务器、以有限权限运行应用程序、修复文件访问问题或重组用户帐户。 在Linux中更改“用户”根据上下文可能意味着几种不同的事情: 在shell中切换到另一个帐户(例如,从john切换到root) 当您需要以另一个用户的身份进行交互式终端会话时使用——通常用于系统管理或测试某些内容在不同帐户环境下的行为。 以另一个用户身份运行单个命令 当您只需要提升权限或不同身份来执行一项任务(如重新启动服务或运行数据库命令)而不完全切换会话时,这是理想的选择。 更改服务/进程的默认登录用户 服务(Web服务器、数据库、应用程序)通常应在专用的非root用户下运行以确保安全。更改服务用户会影响进程的运行方式及其可以访问的内容。 更改文件和目录的所有者 文件所有权控制访问。如果权限错误——在迁移、恢复或部署后很常见——您可以通过重新分配所有权来“更改用户”,以便正确的帐户可以读取/写入文件。 更改用户身份属性(用户名、UID、组) 这属于帐户管理:重命名用户、更改其UID或调整组成员资格(如授予sudo访问权限)。这些更改可能会影响登录、权限和服务访问。 本指南涵盖所有这些场景,展示何时使用每种方法,如何安全地执行,以及应避免哪些错误——以便您可以自信地更改用户,而不会破坏权限、服务或访问。 切换到另一个用户(交互式shell) su(切换用户) su – username -(或-l)加载目标用户的完整登录环境:主目录、PATH、shell配置文件。 不带-,您将保留当前环境的大部分(可能会令人困惑)。 切换到root: su – 安全提示:在许多发行版中,su需要目标用户的密码(例如,root密码),这通常是禁用的。 sudo -i(适用于root/admin shell) sudo -i 为您提供一个root登录shell(类似于su -),使用您的sudo权限而不是root密码。 使用登录shell切换到另一个用户: sudo -iu username 以另一个用户身份运行单个命令(非交互式) sudo -u sudo -u username whoami sudo -u postgres psql 以干净的登录类环境运行: sudo -iu username 以root身份运行命令 sudo systemctl restart nginx […]
在现代Linux 系统中,网络配置是通过一组命令行工具来管理的,这些工具允许您检查、故障排除和修改 IP 设置,而无需依赖图形界面。这些命令对于管理员和高级用户至关重要,因为它们提供了快速、精确的控制,无论您是在服务器上分配静态 IP、检查服务不可达的原因、验证默认网关,还是在重启后启动接口。 在实际场景中,您使用这些命令来: 显示分配给网络接口的当前 IP 地址(IPv4/IPv6) 检查链路状态(UP/DOWN)、MTU 和接口详细信息 查看路由规则和活动的默认网关 临时更改 IP 配置以进行测试或紧急恢复 诊断连接问题(错误的子网、缺失的路由、接口关闭等) 确认系统使用哪个接口和路由到达目标 因为 Linux 无处不在——从云服务器和 VPS 节点到路由器和嵌入式设备——能够通过 CLI 配置网络是一个核心技能。在现代 Linux 中,显示和更改 IP 配置的主要命令是:ip(来自 iproute2 套件)。它取代了大多数旧的工具,在各个发行版中工作一致,并且是今天生产环境中使用的标准工具集。 ip(来自 iproute2) 它取代了大多数日常使用的旧的 ifconfig/route 工具,并在各个发行版中一致工作。 显示 IP 配置(只读) 显示所有接口 + IP 地址 ip addr show # shorter: ip a 显示特定接口 ip addr show dev […]
在您自己的 VPS 上运行 n8n 是构建 安全、可扩展且始终在线的自动化工作流程 的最佳方式。与基于云的自动化服务不同,在 AlexHost VPS 上托管 n8n 可以为您提供 完全的数据隐私、无限的执行、24/7 的正常运行时间和可预测的成本。以 Debian 12 作为基础操作系统,您将受益于长期的稳定性和现代软件支持。 本指南将指导您安装 Docker、配置带加密的 n8n、启动服务并在浏览器中访问它。 为什么在 VPS 上运行 n8n 而不仅仅是在浏览器中? 虽然 n8n 提供了可以直接从浏览器访问的云服务,但在 VPS 上运行您自己的 n8n 实例为专业人士、企业和开发人员提供了关键优势: 完全的数据隐私 – 您的所有工作流程、API 密钥和客户数据完全由您控制。没有第三方提供商可以访问您的信息。 无限的集成 – 在 VPS 上,您设定限制,而不是 SaaS 提供商。您可以根据需要运行任意数量的工作流程、触发器和执行。 24/7 可用性 – VPS 随时保持您的自动化在线,即使您的个人计算机关闭。 更好的安全性 – 使用防火墙、SSL 证书和 VPN 访问保护您的系统。所有凭据都使用您自己的密钥进行加密。 可扩展性和性能 […]
默认情况下,Ubuntu 自动安装更新,以保持系统安全和稳定。这对大多数用户来说是有用的,但在某些情况下,您可能希望手动控制更新——例如,在服务器、测试环境中,或当您需要保持特定软件版本时。 Ubuntu中的主要更新机制 unattended-upgrades — 自动安装更新的服务,主要是安全补丁。 APT Periodic — 控制检查和下载更新的频率。 snapd — 自动更新Snap包。 systemd timers — 按计划运行更新检查的后台任务。 禁用自动APT更新(系统更新) 方法1:编辑配置文件打开文件: sudo nano /etc/apt/apt.conf.d/20auto-upgrades 更改或添加这些行: APT::Periodic::Update-Package-Lists “0”; APT::Periodic::Unattended-Upgrade “0”; 保存(Ctrl+O)并退出(Ctrl+X)。 方法2:移除unattended-upgrades包 sudo apt remove unattended-upgrades -y 禁用自动Snap更新 选项1:停止并禁用服务 sudo systemctl stop snapd.service sudo systemctl disable snapd.service 选项2:更改刷新计划(更安全) sudo systemctl edit snapd.service 添加: [Service] Environment=SNAPD_REFRESH_TIMER=00:00-00:00 这将阻止Snap自动更新。 禁用APT的systemd定时器 Ubuntu使用定时器进行更新。要禁用它们: […]
“`html 在使用 Linux 时,许多教程指导用户使用 apt-get 命令来安装、更新或删除软件包。然而,遇到以下错误可能会导致困惑,尤其是在初学者中: apt-get: command not found 这个消息虽然看起来令人担忧,但通常指向一个简单的问题:系统无法找到 apt-get 可执行文件。本文阐明了这个错误的含义,探讨了其常见原因,并概述了有效的解决方法。 错误的真正含义 该错误表示 shell 无法在系统的 PATH 环境变量中找到 apt-get 程序。从实际角度来看,这意味着 apt-get 工具在您的系统中缺失。 重要的是,这并不一定意味着您的操作系统出现故障或损坏。更多时候,它反映了以下条件之一: 您正在使用不包含 apt-get 的 Linux 发行版。 您的环境是一个最小化或容器化的安装,默认缺少包管理工具。 包管理器已被删除或损坏。 错误的常见原因 非 Debian 基础的发行版 apt-get 包管理器是 Debian 及其衍生版(包括 Ubuntu、Linux Mint 等)的原生工具。如果您在 CentOS、Fedora、Red Hat Enterprise Linux (RHEL)、Arch Linux 或 Alpine Linux 等发行版上操作,缺少 apt-get 是预期的,因为这些发行版使用其他包管理器。 例如: […]
管理软件仓库是维护稳定和安全的 Linux 环境 的关键方面。偶尔,仓库可能会出现问题——它们可能过时、不可信,或在软件包管理操作中引发冲突。本文提供了一个全面的指南,安全地识别和删除这些麻烦的仓库,主要针对基于 Debian 的 Linux 发行版,如 Ubuntu、Mint 和 Kubuntu。 删除故障仓库的重要性 有问题的仓库可能会引入几个问题,例如: 在系统更新或软件包安装期间生成错误。 导致依赖冲突,从而妨碍系统稳定性。 托管过时或不安全的软件包,危及系统安全。 阻碍系统升级或干扰其他仓库。 及时识别和删除这些仓库有助于维护系统完整性,并确保顺利的软件包管理体验。 删除问题仓库的方法 使用命令行和 add-apt-repository 对于通过 add-apt-repository 添加的个人软件包档案(PPA)或自定义仓库,可以简洁地使用以下命令删除: sudo add-apt-repository -r ppa:repository-name 或者对于其他类型的仓库: sudo add-apt-repository -r ‘deb repository-url’ 删除后,刷新您的软件包缓存以应用更改: sudo apt update 通过软件源图形化删除 在图形桌面环境中操作的用户可以利用系统工具进行仓库管理: 打开“软件和更新”或等效工具。 导航到“其他软件”选项卡。 找到并选择有问题的仓库。 点击“删除”或取消勾选以禁用。 保存更改并在提示时更新仓库信息。 这种方法提供了一个用户友好的界面来管理仓库,而无需命令行交互。 通过配置文件手动删除 高级用户可以选择直接操作仓库配置文件: 在编辑之前备份主源列表: sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 编辑主源列表: sudo […]
在AlexHost上强化您的Linux服务器:顶级安全实践 为什么要保护您的Linux服务器? Linux 是一座堡垒,但并非无懈可击。过时的软件包或开放的SSH端口等失误可能会招致麻烦。在 AlexHost的VPS 或 专用服务器 上,您拥有锁定系统的工具和能力。这些最佳实践——更新、SSH加固、防火墙等——可以保护您的服务器免受攻击者的侵害,同时运行顺畅。让我们深入探讨,给您的设置上保险! 1. 保持系统更新 未修补的软件是攻击者最常见的入侵点之一。请定期更新您的系统。 Debian/Ubuntu: sudo apt update sudo apt upgrade -y CentOS/RHEL: sudo yum update -y 2. 加固SSH访问 安全外壳(SSH)协议是管理员连接Linux服务器的主要方式。如果不加保护,它是暴力攻击的常见目标。 生成SSH密钥对: ssh-keygen -t rsa -b 4096 将公钥复制到服务器: ssh-copy-id user@server_ip 编辑/etc/ssh/sshd_config以禁用密码认证和root登录: PasswordAuthentication no PermitRootLogin no 更改默认SSH端口:端口222 重启SSH服务: sudo systemctl restart ssh 3. 配置防火墙 防火墙限制对仅必要服务的访问。 UFW(Ubuntu/Debian): sudo ufw default deny […]
