
它是什么
SSH 为管理员提供远程机器上的命令行。通过该连接发送的所有内容都经过加密,包括登录过程本身。它取代了 Telnet 等较早的工具,后者以明文发送密码。常用的实现是 OpenSSH,它随 Linux、macOS 和当前版本的 Windows 一同提供。服务器默认在 22 端口监听 SSH。
同一个连接不仅能运行命令,还可以复制文件(SCP 和 SFTP),并通过加密隧道传送其他流量。Git 和 Ansible 等工具的底层就使用 SSH。
用密钥代替密码
SSH 可以用密码登录,但更好的方法是使用密钥对。私钥保存在管理员的电脑上,绝不会发送到任何地方。与之匹配的公钥放在服务器上。登录时,服务器会验证登录者是否持有私钥。密钥不会像密码那样被猜出来,而且每位管理员都有自己的密钥,因此可以逐个人地撤销访问权限。
为什么它对企业重要
- 服务器就是这样运行的:Linux 服务器、防火墙和交换机上的更新、修复和配置都通过 SSH 进行。
- 它是攻击目标:任何可以从互联网访问的 SSH 服务器,都会不断遭到自动化的密码猜测扫描。
- 访问权限需要有人负责:某人离职后留在服务器上的密钥仍然有效。必须有人维护谁可以登录的名单。
良好做法
- 只用密钥:密钥就位后,关闭密码登录。
- 禁止直接以 root 登录:管理员以自己的身份登录,并在需要时提升权限,这样日志就能显示谁做了什么。
- 不要暴露在公开互联网上:通过 VPN 或 Tailscale、WireGuard 这样的专用网络访问 SSH,或者在防火墙上将其限制为已知地址。
- 保护好私钥:为它设置口令,或者把它保存在硬件安全密钥上。
- 人员离职时删除密钥:把它作为离职流程的一部分。
KawaConnect 如何使用 SSH
我们通过 SSH 管理所负责的 Linux 服务器、防火墙和网络设备,采用基于密钥的登录,并且不让远程访问向互联网敞开。访问权限有文档记录,因此客户可以看到谁能够访问其系统。这属于我们 Linux 服务器支持和网络安全工作的一部分。
相关服务
了解更多
- 维基百科上的 Secure Shell 词条对该协议、其历史和用途的中立介绍。
- OpenSSH大多数系统上 SSH 软件背后的项目,附有手册页。
- Arch Wiki 上的 OpenSSH关于设置密钥和加固服务器的实用参考,适用于任何 Linux 发行版。
- Windows 版 OpenSSHMicrosoft 关于 Windows 内置 SSH 客户端和服务器的指南。