IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:SSH

共 55 篇相关文章

IT 累计浏览 4,752

一句话crontab实现防ssh暴力破解

这篇讲的是如何用一条crontab命令,为公网VPS搭建一道自动化的SSH暴力破解防火墙。 针对公网VPS即便更换非标准端口也难免被扫描和试探的问题,作者提出了一种轻量却高效的解决方案:将一条Bash命令放入crontab定时任务,实现自动监控与封禁。这条命令会通过`journalctl`查询最近24小时内的SSH登录日志,用`awk`统计出失败次数超过5次的来源IP,最后自动将这些“坏人”IP追加到`/etc/hosts.deny`黑名单中。 文章最巧妙的地方在于,用短短三个管道符串联起日志查询、统计分析与访问控制,既利用了系统原生日志工具,又结合了简单的文本处理,最终实现了从发现到封禁的全自动闭环。作者还贴心地指出,命令可根据是否使用systemd系统灵活调整日志来源,增强了实用性。 对于运维人员或个人站长而言,这提供了一个零成本、即刻生效的防护思路,无需依赖额外软件,用系统自带工具就能构筑起第一道安全防线。

IT 累计浏览 1,814

SSH 密钥管理工具

这篇讲的是作者从自身日常维护多台服务器和树莓派SSH连接的痛点出发,分享了几个能显著提升效率、简化管理的密钥与配置工具。 文章首先回归基础,介绍了`ssh-keygen`生成密钥对这一安全实践。随后,重点对比了几种分发和管理公钥的实用工具:`ssh-copy-id`可以一键将本地公钥复制到目标主机,在家庭网络等信任环境中极为方便;而`ssh-import-id`则提供了更灵活的方案,它能直接从GitHub等平台导入你已有的公钥,不仅省去了手动复制粘贴的步骤,更成为管理多人访问服务器权限的利器——作者就用它轻松授权同事登录。 除了密钥,连接管理本身也是个麻烦事。文章推荐了一个名为`storm`的命令行工具,它通过交互式命令将复杂的连接参数(主机名、端口、用户等)快速添加到SSH配置文件中,之后你就可以用简单的别名(如`ssh pi3`)完成连接,无需记忆冗长命令。文章也点明了其本质就是管理`~/.ssh/config`文件,给喜欢手动配置的用户指明了方向。 作者的分享从密钥生成、安全分发到连接配置,形成了一套完整的效率提升工具链,让繁琐的SSH日常变得高效且有序。

IT 累计浏览 2,526

Centos 7 SSH连接超时自动断开的解决方案

这篇讲的是在Centos 7服务器上,SSH连接因闲置超时频繁自动断开,影响操作效率的问题。 作者从自身在Centos 7下安装软件时的困扰出发,定位到问题根因在于SSH服务端的连接保活机制。当客户端一段时间无数据交互,服务端会主动切断连接。解决方法很直接:编辑SSH守护进程的配置文件`/etc/ssh/sshd_config`,调整两个关键参数。将`ClientAliveInterval`从默认的0(禁用)改为60秒,意味着服务端会每60秒向客户端发送一次保活信号;同时将`ClientAliveCountMax`保持为3次,即如果连续3次(共180秒)都没有收到客户端响应,才会真正断开连接。 完成修改后,执行`systemctl restart sshd`重启服务使其生效。此后,即使长时间不操作终端,连接也能保持稳定,不再被意外中断。这个调整方案简单有效,对于需要长时间保持SSH会话的运维或开发场景非常实用。

IT 累计浏览 2,561

如何在 Linux 上复制文件/文件夹到远程系统?

这篇讲的是 Linux 用户日常一定会遇到的场景:怎么把本地的文件或文件夹高效地复制到远程服务器上。作者没有停留在只讲最常用的 `scp`,而是系统梳理了四种主流方案——`scp`、`rsync`、`pscp` 和 `prsync`,并详细解释了它们各自的设计思路和适用情况。 比如,`scp` 作为原生命令,安全可靠,适合快速单次传输;`rsync` 则胜在支持增量同步与断点续传,尤其适合大文件或经常变动的目录。而 `pscp` 和 `prsync` 是进阶工具,专门解决“同时把文件推送到多台服务器”的批量运维需求,提供了超时控制等实用特性。文章不仅列出了这些差异,还给出了可直接复制的命令行示例,从基础用法到多文件、多目录的复制场景都有覆盖。 作者强调这些方法都经过了实际环境的测试,确保读者拿来就能用。对于需要在不同生产环境中选择合适传输工具的开发者或运维人员来说,这份整理提供了一个清晰的决策参考。

IT 累计浏览 2,420

ubuntu系统root用户不能通过ssh远程登录问题

这篇讲的是Ubuntu系统中一个常见的SSH登录障碍:明明知道root密码,在虚拟机内能正常登录,但通过SSH远程连接时却总是报错“Password Authentication Failed”。问题根源往往藏在sshd的配置文件里——默认设置中`PermitRootLogin`被设为`without-password`,这意味着root用户只允许使用密钥认证登录,拒绝了所有密码验证请求。 解决方法直截了当:通过`vim /etc/ssh/sshd_config`编辑配置,将这一行改为`PermitRootLogin yes`,从而开放root用户的密码登录权限。修改完成后,只需重启sshd服务或重启系统,再次尝试远程连接就能顺利进入。 这篇内容虽然不长,但精准切中了一个实际运维中容易忽略的配置陷阱。对于刚接触Linux服务器管理的用户来说,理解认证方式与权限配置之间的对应关系,是排查连接故障的基础一步。

IT 累计浏览 930

Mac远程ssh出现LC_CTYPE错误的解决

这篇讲的是用 Mac 终端 SSH 到 Linux 服务器时,总弹出 `-bash: warning: setlocale: LC_CTYPE: cannot change locale (UTF-8)` 的烦人提示。很多人第一反应是去服务器端改 locale 配置,但发现改了也没用。 文章点破了关键:问题的根源其实在 Mac 本地。因为 SSH 连接时,Mac 会自作主张地把本地的 `LANG` 和 `LC_*` 环境变量“发送”给远程服务器,覆盖了服务器自己的设置。所以,无论服务器怎么配置,只要 Mac 发了个它不支持的 locale,这边就会报错。 解决方案非常直接:在 Mac 的 `/etc/ssh_config` 配置文件里,找到 `SendEnv LANG LC_*` 这一行,把它注释掉。这样 SSH 连接时就不会再把本地的 locale 变量传过去了,警告自然消失。对于经常跨 Mac 和 Linux 环境工作的开发者来说,这个小技巧能立刻还你一个清静的终端。

IT 累计浏览 1,611

shell实现ssh自动登录

作者因为在Mac下没找到顺手的SSH客户端,干脆自己用expect写了一套自动登录方案。这篇分享的核心是一个名为`ssh_auto_login`的expect脚本,它能自动处理SSH连接中的密码验证,甚至支持通过通道机(跳板机)进行动态密码认证和内网服务器跳转,省去了手动输入的繁琐。 配合一个更上层的shell启动器脚本,作者实现了通过简单命令(如`./launcher 49`)快速连接不同服务器(如联通、电信线路或特定IP)的功能。整个方案无需复杂配置,特别适合需要频繁通过跳板机访问内网服务器的运维或开发场景。虽然脚本中的服务器IP和通道机逻辑是为特定环境编写的,但其处理SSH交互、动态密码匹配的核心思路清晰,稍作修改就能适配其他服务器。作者用这个实用小工具,演示了Shell脚本在自动化运维中解决具体痛点的灵活价值。

IT 累计浏览 3,280

Redis未授权配合SSH免密码登录漏洞及修复

这篇讲的是Redis未授权访问漏洞如何被利用来配合SSH免密码登录,以及相应的修复方法。作者从Redis的基本概念出发,介绍了redis-cli客户端、Redis Desktop Manager图形界面工具,以及常用的Key操作(如set、get、del)和服务器命令(如info、config get/set)。文章重点讲解了当Redis配置不当、默认无需密码认证时,攻击者如何通过Redis写入SSH公钥,从而实现免密码登录主机。具体步骤包括在Kali主机上使用redis-cli连接目标Redis,利用config set dir和config set dbfilename命令将SSH公钥写入/root/.ssh/authorized_keys文件。同时,文章还讨论了写入公钥后依然无法登录的常见情况,例如目录权限问题或SELinux设置,并给出了解决方法。 针对修复方案,文章强调了设置Redis密码认证的重要性,建议修改redis.conf文件中的requirepass参数。此外,还提到了修改绑定地址(bind参数)以限制访问,配置防火墙规则(如iptables)只允许特定IP连接,以及定期备份数据等措施。这些方案有助于系统管理员加固Redis服务,防止未授权访问和潜在的安全风险。通过实例演示漏洞利用过程,文章提供了可操作的修复建议,帮助读者在实际环境中实施安全防护。

IT 累计浏览 2,073

多 SSH Key 管理技巧与 Git 多账户登录问题

这篇技术文章从开发者日常需要频繁登录多台远程服务器的场景出发,介绍了一种高效的管理方式。作者指出,虽然直接使用 `ssh` 命令配合端口号、别名等方式能工作,但当服务器数量增多时,命令会变得冗长且难以维护。 文章的核心解决方案是熟练运用 `~/.ssh/config` 配置文件。通过为不同主机(如工作服务器、个人代理、学校数据库)设置简洁的 `Host` 别名,并预先配置好对应的 `HostName`、`User`、`Port` 甚至 `IdentityFile`(指定不同的SSH密钥)和 `LocalForward`(端口转发)规则,可以将复杂的登录逻辑固化下来。此后,只需输入一个简单的别名即可建立连接。 作者通过多个配置实例,清晰地展示了如何将一条可能包含多重参数的复杂命令,转化为结构清晰、易于管理的配置项。这种方式不仅极大提升了日常登录的效率,也使得对不同环境、不同密钥的切换与管理变得一目了然。对于需要同时处理多个项目和远程环境的开发者而言,掌握这项技巧能有效减少心智负担。

IT 累计浏览 2,291

SSH 信任限制只能执行 rsync 命令

这篇讲的是如何在不全面开放SSH权限的前提下,实现服务器间安全的rsync文件同步。作者从一个常见的运维场景出发:Server A需要经常向Server B同步文件,但Server B不想配置复杂的rsyncd,同时出于安全考虑,也不能完全开放SSH登录权限。 文章提供的解决方案核心在于精细配置Server B上的`~/.ssh/authorized_keys`文件。通过将公钥的`command`字段指定为`rrsync`脚本,并附带目标目录路径,就能实现两个关键限制:一是SSH连接建立后,只能执行`rrsync`(受限的rsync)命令,无法获得shell;二是文件传输被严格限定在指定的目录(例如`/data/work/package/`)内。同时,配合一系列`no-`前缀选项,彻底禁用了端口转发、X11转发等可能产生安全隐患的功能。 具体步骤上,文章给出了清晰的操作指引:在Server A生成专用的ssh密钥对,在Server B部署`rrsync`脚本并编辑`authorized_keys`。最后通过一条包含密钥路径的rsync命令,即可完成从本地到远程指定目录的上传。这种方式既满足了自动化同步的业务需求,又将服务器的安全暴露面降到了最低,是一个实用且安全性较高的配置技巧。

IT 累计浏览 7,872

Mac下使用SecureCRT的一些记录

这篇记录讲的是作者在Mac上使用SecureCRT终端连接软件时,亲身经历并解决的两个典型“坑”,以及积累的快捷键心得。 核心问题之一在于“密码总是存不住”。作者发现,这是SecureCRT在Mac上默认启用了系统“钥匙串访问”来管理密码所导致的。解决方法很具体:进入软件全局选项的Advanced设置页,取消勾选Use Keychain,即可让SecureCRT使用自带的密码保存功能。 另一个更隐蔽的问题是“CTRL+C发不出中断指令”。作者排除了键盘故障,尝试了各种设置均无效,最终意外发现根源在于输入法:必须将输入法切换至系统自带的“美式英文”,才能正常发送中断信号,即使切换至第三方输入法的英文模式也不行。 此外,文章还整理了一份Mac版SecureCRT与Windows版在快捷键上的差异列表,比如使用Command+L快速新开标签页连接,Command+K新建会话等。这些基于实践的小结,对于经常在Mac上进行远程连接的开发者来说,或许能省去不少摸索的时间。

IT 累计浏览 2,898

ssh 免密码登录

这篇讲的是如何通过三个关键命令快速配置SSH免密码登录,免去每次连接都输密码的麻烦。作者从实际操作出发,清晰拆解了`ssh-keygen`生成密钥对、`ssh-add`管理密钥、`ssh-copy-id`分发公钥这三个核心步骤。 文章特别指出了一个容易踩坑的细节:`ssh-copy-id`这个方便的工具其实属于`openssh-clients`包,而不是`openssh`包本身。作者通过直接列出两个软件包的文件清单,让读者一眼就能看清这个差异。 掌握这套方法后,无论是日常运维还是脚本自动化,都能更顺畅地连接远程服务器。理解包之间的区别,则有助于在不同Linux发行版上准确找到和安装所需工具。

IT 累计浏览 8,189

Linux shell脚本使用while循环执行ssh的注意事项

当用while循环结合ssh批量处理服务器时,很多人会遇到脚本在首个任务后意外终止的诡异问题。这篇文章就针对这个经典“坑”,做了一次透彻的拆解。 问题现象很明确:一个用于批量获取服务器运行时间的脚本,在循环中调用ssh命令后,只处理了第一个IP就退出了。作者分析了根因——while循环通过重定向读取IP列表文件,但ssh命令会“吃掉”这个输入缓冲区,导致循环体内部的read命令无数据可读,循环因此提前结束。 解决这个坑提供了两种清晰的思路。一种是“换条路走”,直接将while循环改为for循环,因为for循环是逐词解析命令输出,不会预加载整个文件,从而避免了输入流被ssh截获。另一种是“原路修复”,在ssh命令后加上-n参数,该参数会明确禁止ssh从标准输入读取数据(等同于将输入重定向到/dev/null),从而“归还”了被占用的输入流,让while循环能正常推进。文章给出了具体的代码示例,是一个非常实用的填坑指南。

IT 累计浏览 2,234

sftp配置chroot

这篇讲的是如何利用Linux自带的sftp,通过配置chroot来搭建一个既安全又方便的文件传输服务。作者从传统FTP密码明文传输、配置繁琐等痛点出发,直接给出了基于OpenSSH的sftp解决方案。 核心步骤围绕修改sshd配置文件展开,重点是启用`internal-sftp`并设置`ChrootDirectory`,将用户“关”在家目录这个“根”下。文章很细致,不仅区分了按组(推荐)和按用户两种配置方式,还特别强调了权限管理这个容易踩坑的地方:chroot目录的所有者必须是root,权限为755,后续需要由root在目录内创建子目录并授权给sftp用户,这样用户才能正常读写。 整体来看,它清晰地展示了如何用一个更安全(基于SSH)、更易管理的方式替代传统FTP,特别适合对安全性有基本要求、但又不想配置复杂专业FTP服务的场景。最后附带的客户端连接示例,让整个方案从服务器到客户端都形成了闭环。

IT 累计浏览 3,286

使用tar+lz4/pigz+ssh更快的数据传输

这篇讲的是,如何通过压缩管道来突破服务器间大文件传输的速度瓶颈。作者在之前优化SCP速度的基础上,进一步测试了结合不同压缩算法与SSH的方案。 核心对比了lz4与pigz这两种高速压缩工具。在“打包-压缩-传输-解压-拆包”这一完整流程中,解压速度是最大的性能短板。lz4虽然在压缩率上略逊于pigz,但其解压速度达到了惊人的264MB/s,是gunzip的三倍,这使它在需要即时解压的传输场景中成为关键。 实测结果显示,使用 `tar | lz4 -B4 | ssh` 的组合,传输速度从原始SCP的约40MB/s提升到了249MB/s。这意味着原本需要3小时的400GB数据迁移,现在仅需27分钟。文章不仅给出了最终可用的命令行方案,还分析了磁盘IO、网络带宽及管道开销等各环节的实际表现,并发现了调整lz4块大小(-B4)能对性能产生显著影响。对于运维和开发人员来说,这是一个非常实用且经过验证的加速技巧。

IT 累计浏览 997

在 Perl6 脚本中并发执行 ssh 命令

这篇讲的是作者在 Perl6 中并发执行 SSH 命令时的一次实战尝试。由于找不到合适的现有模块,且底层 C 库不兼容其 Kerberos 认证环境,作者决定绕开高层并发 API(如 Promise/Supply),直接使用更底层的 Thread 和 Channel 来实现。 文章围绕一个简洁的 OpenSSH 类展开,展示了如何通过多方法实现单个主机与多主机的命令执行。作者特别指出,虽然 Perl6 宣传了高级并发模型,但 API 迭代较快,有时选择更稳定的底层原语反而更可靠。 代码示例串联了不少 Perl6 语法点:类的属性定义、字符串连接符 `~`、用于捕获错误的 `try`/`CATCH`、执行系统命令的 `qqx{}`,以及 `>>` 操作符在数组上的线程化 finish 操作。作者也坦诚,示例代码较为简陋,例如依赖密钥登录且未使用线程池调度。 整体来看,这是一份结合了具体需求、实现思路与语法讲解的笔记,既分享了在 Perl6 中集成系统命令与并发控制的方法,也客观分析了语言特性在实际场景下的应用考量。

IT 累计浏览 1,716

在一个列表里选定主机名后直接 SSH 登陆

运维或开发人员常会遇到这样的场景:即使有配置管理工具,仍免不了需要手动SSH登录单台服务器排查问题。反复查IP、复制、切换窗口的操作既繁琐又容易出错。 这篇文章介绍了一个简洁实用的解决方案:一个名为warp的Bash脚本。它的核心思路很直接——将常用服务器的主机名或IP地址整理在一个文本文件中,通过运行脚本即可调用Vi/Vim进行选择式登录。用户只需在列表中上下移动光标,按下回车便能自动完成连接,省去了手动输入的麻烦。 warp的设计亮点在于其灵活性。配置文件格式自由,支持使用注释(如“#”或“--”)对服务器进行分组和说明,既清晰又便于维护。工具本身仅是一小段脚本,无需复杂安装。更巧妙的是,如果同时选中多行,它还能配合csshx工具实现批量操作,进一步提升效率。 这种将机械性操作自动化的思路,虽然工具简单,却能有效优化日常工作流,减少重复劳动。对于经常需要管理多台服务器的团队来说,是个不错的效率小工具。

IT 累计浏览 2,764

服务器批量执行工具 PSSH

运维或开发同学经常需要面对这样的场景:当服务器数量达到几十甚至上百台时,如何高效地执行统一操作?这篇文章介绍了一个实用的命令行工具——PSSH(Parallel-SSH)。作者从管理一个拥有60多台Ubuntu执行节点的Oracle Gird Engine集群的实际经验出发,展示了如何利用PSSH来简化批量管理工作。 文章详细演示了PSSH的几个核心命令:用pssh批量执行命令查看所有服务器状态;用pscp将文件同时上传到多台服务器;用pslurp从服务器集群批量下载文件到本地不同目录;以及用prsync保持开发机与生产服务器间的数据同步。每个命令都配有清晰的输入输出示例,比如展示五台服务器(grid01至grid05)的同步操作结果,非常直观。 除了展示功能,文章也提到了PSSH的一个替代方案:对于不排斥Python的开发者,也可以使用Fabric来编写脚本实现类似的批量任务管理。这为不同技术背景的读者提供了选择参考。对于管理大量服务器的运维工作来说,这个工具是个不错的选择。

IT 累计浏览 2,709

Ctrl+S导致Putty或Xterm命令行无响应问题

这篇讲的是一个让很多用命令行的人都会心头一紧的瞬间:在PuTTY或Xterm里习惯性地按下Ctrl+S想保存什么,结果终端突然毫无反应,好像死机了。作者一针见血地指出了问题的根因——Ctrl+S在终端环境下默认触发了XOFF流控制,这会暂停终端的一切输出,但其实按键和命令都在后台默默执行。 文章给出了解决这个“假死”问题的三个层次方案。最直接的是立刻按下Ctrl+Q,重新打开流控制,就能“唤醒”终端。想从根源上杜绝,可以在.bashrc配置文件中通过stty命令禁用这个快捷键的XOFF功能。而最巧妙的是“一箭双雕”的方案:不仅禁用了Ctrl+S的终端控制功能,还能通过额外的配置,让它在VIM编辑器里重新变回保存文件的快捷键,完美契合了用户的手指肌肉记忆。 对于经常在命令行和编辑器之间切换的工程师来说,这篇文章提供了从急救到根治,再到功能自定义的全套思路,能有效解决这个烦人的操作习惯冲突。

IT 累计浏览 4,177

SSH日常用法小例

这篇讲的是如何将SSH从“会用”提升到“用得顺手”。作者从最基础的命令行登录出发,逐步展示了如何通过配置文件别名、公钥认证和代理转发等一系列技巧,一步步把繁琐的登录过程简化到极致——最终实现“一次配置,处处免密”。 文章特别对比了传统密码登录与公钥认证在便利性上的巨大差异。对于文件传输,作者不仅介绍了最常用的scp命令,并解释了-r和-C参数的作用,还推荐了sftp这个基于SSH的交互式工具,为不同场景提供了解决方案。其中,ssh -A代理转发用于跳板机的思路也很有启发性。 作者用实际例子告诉我们,掌握这些小技巧,能让你在连接和管理多台服务器时,省去大量重复输入密码的时间,大幅提升日常工作效率。对于需要频繁远程操作的开发者和运维人员来说,这是一份非常实用的快速参考。