先弄明白:SSH 客户端在中间做了什么
很多人第一次接触 Linux SSH客户端,会以为它是一个“远程桌面”。其实并不是。SSH 客户端做的事情很朴素:在你的电脑和服务器之间建立一条加密通道,把你在键盘上敲的字符送过去,把服务器返回的字符画到屏幕上。它不传输图形界面,只传输文字。
这带来两个直接结果。第一,它非常省资源,一台十年前的笔记本也能流畅管理一台几十核的服务器。第二,它要求你记住或查得到命令,因为屏幕上没有可以点的按钮。
理解这一点,后面的很多困惑就自动消解了。比如“为什么客户端里看不到文件夹图标”,因为它本来就不是文件管理器;比如“为什么关掉窗口程序就断了”,因为通道跟着窗口一起结束。
连上去之前,先把四样东西凑齐
绝大多数“连不上”的问题,不是客户端的问题,而是信息没凑齐。动手前先确认这四项:
- 服务器地址:一般是一个 IP,形如 192.168.1.10 或 47.x.x.x,内网机器可能是一个域名
- 端口:默认是 22,很多云主机或运维会改成 2222、2022 之类的自定义端口
- 用户名:常见的是 root,也可能是 ubuntu、centos、deploy 这类普通账号
- 认证方式:密码,还是密钥文件
这四项缺一项就别急着下载软件。找给你服务器的人要全,写在记事本里,后面会反复用到。
顺带提醒:云厂商控制台里通常也带一个网页版登录入口,忘了上面任何一项时,它是找回信息的最后一条路。
客户端怎么选:新手只需要分清两类
市面上的 Linux SSH客户端大致分两类,入门阶段认清这点就够了。
第一类是纯终端工具,界面就是一个黑框加几个标签页,功能克制,启动快,适合只做命令操作的人。
第二类是带侧边栏的集成工具,除了终端,还内置了文件上传下载、服务器分组、连接信息保存等功能,界面上通常左边一棵树、右边一片黑。对刚上手的人来说,第二类更友好,因为不用另外装一个传输工具。
选择时不要陷入参数对比。对入门者来说,真正影响体验的只有三件事:
- 能不能记住连接信息,不用每次重输地址端口
- 中文显示是否正常,不乱码、不重叠
- 断线后能不能快速重连,而不是从头再来一遍
这三条满足了,剩下的差异要到很后面才感觉得到。
第一次连接的完整动作
以最常见的密码登录为例,动作顺序是这样的:
- 打开客户端,新建连接,填入地址、端口、用户名
- 保存后双击连接
- 第一次连接会弹出一个指纹确认提示,让你核对一串字符
- 确认后输入密码,回车
- 看到类似 user@host:~$ 的提示符,说明已经进去了
那个指纹提示值得多说一句。它是在告诉你“这台服务器的身份我第一次见,你确认一下”。如果是你自己刚买的机器,确认即可;如果是公司服务器,而你又刚换过网络环境,最好找同事核对一下指纹,因为中间人攻击正是靠这一步蒙混过去的。
进去之后,先敲两三条无害的命令熟悉手感,比如 whoami 看当前用户,pwd 看所处目录,df -h 看磁盘余量。不要一上来就执行网上抄来的长命令。
新手最容易踩的四个坑
- 把密码和密钥搞混。密钥登录时不需要输密码,客户端会让你选一个密钥文件;如果你还在等密码输入框,说明认证方式选错了。
- 端口没改。默认 22 连不上时,先问是不是改过端口,而不是反复换客户端。
- 中文乱码。多半是终端编码设置不对,本地和服务器两端都要是 UTF-8。
- 关窗口就断。想要长时间跑任务,应该用 screen 或 tmux,而不是指望客户端保持连接。
把日常操作固定下来,能省很多事
入门一段时间后,建议做三件小事。
第一,给连接起个看得懂的名字。不要用“服务器1”“测试机”,用“生产-订单服务-上海”这种能一眼看懂的名字。会话多了以后,命名质量直接决定你找东西的速度。
第二,按用途分组。生产、测试、个人项目分开放,颜色也可以区分。误连生产环境是新手最容易犯的严重错误之一,分组是成本最低的防线。
第三,重要连接改用 SSH密钥登录。密码可以被猜到、被撞库、被键盘记录;密钥文件留在你自己电脑上,泄露面小得多。生成密钥后把公钥放到服务器的 ~/.ssh/authorized_keys 里,之后登录就不用再输密码了。
三条对普通读者也适用的安全底线
- 不要把密码写在会话名或备注里,也不要把连接信息截图发到群里
- 服务器如果对公网开放,尽量换掉 22 端口并限制来源 IP,或者干脆只走跳板机
- 密钥文件设一个口令保护,笔记本丢了不至于连服务器一起丢
这些做法听起来都是给别人添麻烦,实际上是给未来的自己省事。一次误操作清空目录的代价,远比多花十分钟配置要高。
什么时候该升级用法
当你开始频繁在两个窗口之间复制粘贴,或者每次传文件都要另开一个工具时,说明你已经过了入门阶段。这时可以去了解会话同步、批量命令、日志记录这些功能。但对绝大多数人来说,一个能稳定连上、能记住连接、中文不乱码的 Linux SSH客户端,就已经够用了。
工具的价值在于让你忘记它的存在。等你不再纠结用哪个客户端,而是直接打开就开始干活,入门这件事就算完成了。