
移动开发开发工具【免费下载链接】ZeroTermux项目地址https://gitcode.com/GitHub_Trending/ze/ZeroTermux点击查看免费下载sshd 是 OpenSSH 软件套件中的服务器守护进程它负责监听网络端口、接受 ssh 客户端连接并完成身份认证与加密会话建立是整个 SSH 远程登录体系中被连接的一端。在 ZeroTermux 中sshd 既是终端内开启远程访问、把 Android 设备变成可远程登录主机的基础也与仓库内置的 SSH 设备管理功能基于 ssh 客户端与 sshpass形成完整的服务端 客户端闭环。读完本文你将掌握 sshd 的全部命令行选项、配置文件关键项以及从安装、启动、密钥认证到日常运维排错的完整实战方案。sshd 是什么sshdSSH Daemon是 OpenSSH 软件套件中的服务器守护进程对应文档见 sshd.md。它在服务器端常驻运行监听 22 号端口默认当客户端使用ssh命令发起连接时负责完成协议协商与版本交换服务器主机密钥host key的出示与客户端校验密码或公钥两种认证方式的验证建立加密通道将用户带入登录 shell 或执行远程命令。与之相对OpenSSH 套件中的客户端连接工具是ssh命令其说明参见 ssh.md。两者成对出现一端是sshd监听等待一端是ssh主动连接。在 ZeroTermux 中客户端侧还集成了 SSH 设备管理能力详见下文与 ZeroTermux SSH 设备管理功能的配合一节可以在 App 内保存远程主机信息并一键发起连接。语法与选项详解sshd 的语法非常简洁只有一个可选参数sshd(选项)以下选项是 sshd.md 中列出的完整集合按作用分类展开说明选项作用实战说明-4强制使用 IPv4 地址仅监听 IPv4 地址族适合纯 IPv4 内网环境-6强制使用 IPv6 地址仅监听 IPv6 地址族IPv6 双栈环境中按需选用-D以后台守护进程方式运行服务器与由 init/systemd 托管相对适合直接在前台/会话中拉起服务注意-D语义在不同 OpenSSH 版本实现中略有差异部分实现表示不进入守护化、保持前台-d调试模式输出详细的调试日志到标准错误用于排查认证失败、配置加载等问题可叠加使用-dd、-ddd获得更细日志-e将错误发送到标准错误设备而不是系统日志默认错误写入 syslog加-e后可直接在终端看到配合-d调试尤其有用-f指定服务器的配置文件默认读取/etc/ssh/sshd_configTermux 中为$PREFIX/etc/ssh/sshd_config可用-f指向自定义配置-g指定客户端登录时的过期时间在此期限内用户若未完成正确认证服务器会断开该客户端的连接用于限制认证等待时长-h指定读取主机 key 文件指定服务器主机密钥文件路径默认读取/etc/ssh/ssh_host_*_key系列在多个密钥并存时可用其精确指定-issh 以 inetd 方式运行由 inetd/xinetd 按需拉起 sshd而不是常驻进程适合资源受限场景-o指定 ssh 的配置选项以-o OptionValue形式覆盖配置项优先级高于配置文件适合临时调整而不改动文件-p静默模式没有任何信息写入日志原文档将其描述为静默模式需注意在多数 OpenSSH 实现中静默模式实际由-q提供而-p通常用于指定监听端口如sshd -p 2222。不同发行版实现存在差异实际使用时以目标系统的sshd -h帮助输出为准-t测试模式只校验配置文件的语法与合法性不真正启动服务是改配置后最安全的验证手段典型组合用法# 只做配置语法检查改配置后必做 sshd -t # 用自定义配置前台调试启动并把错误输出到终端 sshd -d -e -f ~/.ssh/my_sshd_config # 使用自定义端口与自定义主机密钥启动 sshd -p 2222 -h /path/to/host_key需要强调的是sshd -t是最值得养成习惯的一步。修改sshd_config后先测试再重启可以避免因配置错误导致服务无法启动、进而把远程登录通道锁死。在 Termux/ZeroTermux 中安装与启动 sshdZeroTermux 内置的终端环境基于 Termux 体系安装 OpenSSH 服务端非常直接。仓库在 SSH 设备管理相关代码中已经内置了环境自检与安装逻辑见 CodeString.kt{ command -v ssh /dev/null || pkg install openssh -y /dev/null 21; } \ { command -v sshpass /dev/null || pkg install sshpass -y /dev/null 21; }这段逻辑说明两点一是通过command -v判断命令是否存在不存在才安装避免重复安装二是pkg install openssh会同时提供ssh客户端与sshd服务端Termux 的 openssh 包即 OpenSSH 套件。手动执行时pkg update pkg install openssh -y安装完成后Termux 会自动生成主机密钥位于$PREFIX/etc/ssh/下的ssh_host_*_key随后即可启动服务端# 启动 sshd 服务Termux 下通常无需 root直接以普通用户运行 sshd # 查看是否监听成功 ss -tlnp | grep :22上述ss -tlnp输出*:ssh监听状态的用法在 ss.md 的示例中可以看到users:((sshd,1379,3))这样的输出形式即用ss命令确认 sshd 进程正在监听 SSH 端口。在传统的 systemd 发行版环境中启动方式为service sshd start参见 rsync.md 中的service sshd start示例。首次连接前须知Termux 中sshd默认使用8022端口而非标准的 22这是 Termux 发行版为避开特权端口做的调整不同版本实现可能不同以实际监听输出为准默认情况下 Termux 的 sshd 以当前 Termux 用户身份登录用户名即$PREFIX对应的用户名如u0_aXXX可通过whoami查看连接前需要先设置登录密码或配置密钥认证见下文。sshd_config服务端核心配置sshd 的行为由配置文件控制默认路径为$PREFIX/etc/ssh/sshd_configTermux或/etc/ssh/sshd_config通用 Linux。修改配置后务必执行sshd -t校验再重启服务。以下为最常用的配置项属于 OpenSSH 通用标准配置实际取值因发行版而异以目标系统sshd -T输出为准# 监听端口 Port 8022 # 允许 root 登录Termux 无 root 概念通用服务器上建议设为 prohibit-password PermitRootLogin prohibit-password # 是否允许密码认证 PasswordAuthentication yes # 是否允许公钥认证 PubkeyAuthentication yes # 公钥存放文件相对用户主目录 AuthorizedKeysFile .ssh/authorized_keys # 认证超时秒对应命令行 -g 选项的配置形态 LoginGraceTime 60 # 允许的用户 AllowUsers termux配置项与命令行选项是相互印证的-f指定配置文件路径-o则是命令行级覆盖二者都服务于不改文件也能调整行为的场景而-g的认证过期时间在配置文件中即对应LoginGraceTime。主机密钥与免密登录SSH 的两种认证方式中公钥认证比密码认证更安全也是自动化与脚本化连接的首选。这一链路涉及三个环节生成密钥、安装公钥、服务端校验。第一步生成密钥对客户端使用 ssh-keygen.md 讲解的ssh-keygen命令ssh-keygen -t ed25519 -C termux-device -f ~/.ssh/id_ed25519常用选项-t指定密钥类型RSA、DSA 或 ed25519-b指定密钥长度RSA 时如-b 4096-N提供新密语留空即无密码-f指定保存路径-C添加注释便于识别-l可查看公钥指纹。第二步安装公钥到服务端使用 ssh-copy-id.md 讲解的ssh-copy-id# 默认使用 ~/.ssh/id_rsa.pub ssh-copy-id userserver # 指定公钥文件 ssh-copy-id -i ~/.ssh/id_ed25519.pub userserver该命令会把本地公钥追加到远程主机的~/.ssh/authorized_keys并自动为远程主目录、~/.ssh、~/.ssh/authorized_keys设置合适权限——权限过宽时 sshd 会拒绝使用该文件这正是ssh-copy-id存在的意义。第三步服务端校验sshd 在用户尝试公钥认证时读取AuthorizedKeysFile指定的authorized_keys文件比对客户端出示的公钥。只有当文件权限正确属主为登录用户、其他用户不可写、密钥匹配且未被RevokedKeys吊销时认证才会通过。这也是为什么上面强调ssh-copy-id会自动修正权限。与 ZeroTermux SSH 设备管理功能的配合ZeroTermux 不仅支持在终端里手动运行 ssh/sshd还在 App 内实现了可视化的 SSH 设备管理。这一功能围绕 SSHDeviceBean.java 展开其generateConnectCommand()方法SSHDeviceBean.java按两种模式生成连接命令密码模式使用 sshpass 自动输入密码sshpass -p 密码 ssh -o StrictHostKeyCheckingno -o UserKnownHostsFile/dev/null -p 22 userhost密钥模式使用别名映射的密钥文件ssh -p 22 -i /data/data/com.termux/files/home/.ssh/别名.key userhost可以看到密钥模式下仓库约定将密钥存放在~/.ssh/下、以设备别名的安全形式命名alias.replaceAll([^a-zA-Z0-9_\\-], _)将非法字符替换为下划线这正是为配合 sshd 服务端AuthorizedKeysFile .ssh/authorized_keys的公钥校验链路而设计的客户端侧约定。在界面上SSHAdapter.java 负责渲染设备列表显示用户名主机:端口点击列表项触发连接、长按删除、拖拽排序连接动作在 BoomWindow.java 中完成先拼接clear 连接命令再通过sendTextToTerminal把命令送入终端会话执行从而复用终端内已安装的 ssh/sshpass。而点击添加 SSH 设备之前代码会先检查$PREFIX/bin下是否存在ssh与sshpass两个可执行文件见 BoomWindow.java不存在则提示等待环境安装——这与 CodeString.kt 中的自动安装逻辑前后呼应。这套服务端 客户端组合的典型使用场景是在一台装有 sshd 的服务器或另一台 Termux 设备上开启服务然后在 ZeroTermux 的 SSH 设备管理中保存该主机的别名、地址、端口、用户名与密码或密钥之后每次点击即可一键进入远程会话无需重复输入长串命令。运维与排错实践用 ss 确认服务状态ss -tlnp | grep ssh如上文所述输出中出现*:ssh与users:((sshd,PID,n))即表示 sshd 正在监听。连接异常时先确认这一条再排查防火墙与端口。用日志定位认证问题sshd 默认把运行与认证日志写入系统日志。在无法直接看系统日志的场景如-e选项所述可让错误输出到标准错误设备。针对 sshd 的专项日志查看可参考 logwatch.md 中的用法logwatch --service sshd --detail High该命令只汇总 sshd 服务的日志情况输出级别为 High适合快速定位暴力破解尝试与认证失败记录。典型排错清单连接被拒绝Connection refused确认ssd -tlnp中 sshd 是否监听、端口是否匹配Termux 默认 8022认证失败但密码正确检查 sshd 是否开启PasswordAuthentication或公钥文件权限是否为600、authorized_keys目录是否为700公钥不生效确认客户端-i指定的密钥与服务端authorized_keys中的公钥一致且服务端开启PubkeyAuthentication配置改坏导致服务起不来在改动前先备份配置改动后用sshd -t校验必要时用sshd -f /path/to/backup_config临时指定旧配置启动需要临时调整又不改文件用sshd -o覆盖单个配置项。安全加固建议关闭密码认证、仅保留公钥认证PasswordAuthentication no这是最有效的防爆破手段修改默认端口Port为高位端口降低被扫描概率用LoginGraceTime限制认证超时对应-g选项缩短未完成认证连接的存活窗口用AllowUsers/AllowGroups限定可登录账户定期用ssh-keygen -l -f /etc/ssh/ssh_host_ed25519_key.pub检查主机密钥指纹防止密钥被替换。小结sshd 作为 OpenSSH 套件的服务端守护进程是远程登录链路的地基。本文完整覆盖了 sshd.md 中列出的全部选项-4/-6/-D/-d/-e/-f/-g/-h/-i/-o/-p/-t并延伸到安装启动、sshd_config配置、主机密钥与authorized_keys免密链路以及 ZeroTermux 内置 SSH 设备管理SSHDeviceBean.java、SSHAdapter.java、BoomWindow.java如何在客户端侧消费 sshd 提供的能力。配套命令文档 ssh.md、ssh-keygen.md、ssh-copy-id.md、ss.md 可继续深入。无论是把手机变成可远程访问的主机还是集中管理多台服务器的入口理解并掌握 sshd 都是第一步。赞分享移动开发开发工具【免费下载链接】ZeroTermux项目地址https://gitcode.com/GitHub_Trending/ze/ZeroTermux点击查看免费下载相关推荐sshd 命令详解OpenSSH 服务器守护进程的选项、配置与实战管理Linux 命令大全sshd 命令详解OpenSSH 服务器守护进程的选项、配置与实战管理Linux 命令大全 sshd 是 OpenSSH 软件套件中的核心服务器守护进程文档教程连接远程 MCP 服务器AI 工程师的云端部署与安全接入实战指南连接远程 MCP 服务器AI 工程师的云端部署与安全接入实战指南 远程部署将 Model Context ProtocolMCP服务器从本地机器迁移到云厂文档教程知识库forever与WebSocket服务长连接应用的进程守护forever与WebSocket服务长连接应用的进程守护 你是否曾遇到WebSocket网络套接字服务意外崩溃导致用户连接中断的情况作为实时通讯应用的CLI运维上一篇httpyac插件开发入门构建自定义处理器扩展API测试能力下一篇PokeMMO脚本系统解析自定义游戏逻辑与事件驱动的实现方法创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考