OpenSSH
autossh
autossh
是一个用于自动重启 SSH 会话和隧道的工具。它能在连接丢失时重新建立 SSH 会话,从而确保 SSH 隧道的稳定性。
scanssh
scanssh
是一个用于扫描 SSH 主机和某些类型代理的工具。它检查服务器的版本号并将结果显示在列表中。它能够检测 SSH、SFTP 以及几种类型的 SOCKS、HTTP 和 Telnet 代理。
例如,扫描小型子网中的 SSH 服务器:
$ sudo scanssh -n 22 -s ssh 192.168.100.32/26
扫描相同的网络中的 SOCKS 代理:
$ sudo scanssh -s socks5,socks4 192.168.100.32/26
可以设置扫描速度以及随机抽样。开放代理检测功能扫描常见端口上的开放代理。
例如,以每秒 200 个的速度从 172.16.1.1
到 172.31.254.254
随机选择 1000 个主机进行扫描:
$ sudo scanssh -r 200 -p random(1000)/172.16.0.0/12
sshfs
sshfs
基于用户空间的文件系统(FUSE)接口,使非特权用户能够创建一个安全、可靠的文件系统框架。它通过 SFTP 子系统将远程文件系统挂载为本地文件夹。通过这种方式,所有使用的应用程序都可以像访问本地目录一样与该目录及其内容进行交互。
sshfp
sshfp
使用 known_hosts
文件中存储的公钥或通过 ssh-keyscan(1)
提供的公钥生成 SSHFP DNS 记录,作为通过 DNS 发布 SSH 密钥指纹的手段。这使得 DNSSEC 查询可以在使用 SSH 密钥之前验证其真实性。SSHFP 资源记录在 DNS 中存储与主机名关联的公钥的指纹。
keychain
keychain
是另一个用于管理 ssh-agent(1)
的工具,它允许多个 shell 和进程(包括 cron(8) 作业)共享由代理持有的密钥。它通常与桌面特定工具(如 OS X 上的 Apple Keychain 或 KDE 的 kdewallet)集成使用。
rsync
rsync
是一个文件传输工具,用于在计算机之间高效地同步文件和目录。它可以运行在 SSH 之上,也可以使用其自有的协议,默认情况下使用 SSH。
gstm (Gnome SSH Tunnel Manager)
gstm
是一个图形前端,用于管理 SSH 连接,特别是端口转发。
sslh
sslh
是一个协议解复用器。它在指定端口上接受连接,并根据客户端发送的第一个数据包转发连接。它可以用于在同一个端口上共享 SSH、SSL、HTTP、OpenVPN、tinc 和 XMPP。
sshguard
sshguard
是一个入侵预防系统,它监控日志以检测不良活动模式,并触发相应的包过滤规则,规则会随着时间的推移而增加。它不仅可以与 SSH 服务一起使用,也可以与其他一些服务一起使用。
ssh-audit
ssh-audit
是一个 Python 脚本,用于收集 SSH 服务器的信息。它可以识别服务器的标语、密钥交换、加密算法、消息认证码(MAC)算法、压缩选项、兼容性设置以及其他一些安全相关的方面。
其他第三方工具
以下是一些用于与 OpenSSH 配合使用的工具,虽然超出了本书的讨论范围,但值得一提:
netstat
– 显示网络连接、路由表、接口统计信息、伪装连接和多播成员。nc
或netcat
– Netcat,TCP/IP 万能工具。socat
– SOcket CAT,一个多用途的中继工具,类似于 netcat。nmap
– 网络探索工具和安全扫描器。tcpdump
– 实时显示网络流量。telnet
– 与另一个主机的未加密交互。pagsh
– 创建新的凭据缓存沙箱和进程认证组(PAG)。nohup
– 启动一个忽略 HANGUP 信号的进程。sudo
– 以其他用户身份执行程序。lftp
– 一个支持 SFTP 的多协议文件传输文本客户端。curl
– 一个支持 SCP 和 SFTP 的多协议文件传输文本客户端。tmux
– 终端复用器。