很多人第一次用SSH客户端连服务器,都是照着教程敲一条命令、回车、看到一串欢迎信息,就觉得自己学会了。等真正上手才发现:密码明明没错却提示拒绝、文件传到一半卡死、换个网络就连不上。工具会用不难,难的是把坑提前躲开。这篇SSH客户端避坑指南从最基础的原理讲起,把新手最容易栽跟头的地方说清楚。
先弄明白:客户端到底替你做了什么
- 你在本地敲的每个字符,客户端负责加密后送到服务器,再把执行结果传回来
- 身份认证基本只有两类:密码,和密钥;后者更安全,用顺了也更省事
- 上传下载走的是同一套加密通道(SFTP/SCP),并不是另开一个口子
把这三件事记住,后面大部分看着很玄的问题,其实都能自己定位。
坑一:只会密码登录,密钥配置全靠抄
密码登录的问题不在于麻烦,而在于它会被暴力尝试,也会在复制粘贴、截图、聊天记录里到处留痕。改用密钥登录是迟早的事,但新手常犯两个错:一是把私钥直接发给别人或者丢进网盘,二是把公钥内容贴错行、文件权限放开成所有人可读。
正确做法很简单:本地生成一对密钥,公钥追加到服务器的 ~/.ssh/authorized_keys,私钥留在自己机器上不外传,同时给私钥设一个口令。服务器端的 .ssh 目录权限一般是 700,authorized_keys 是 600。权限不对,密钥再正确也登不进去。
坑二:以为22端口永远开着
网上教程一律写默认端口,于是很多人连接失败后第一反应是“密码错了”,其实是端口不对或者根本没放通。云服务器有安全组,机房服务器有防火墙,还有运维为了减少扫描会把端口改掉。
- 先问清楚端口、用户名、是否只允许密钥登录,这三项拿到再动手
- 连不上时,先在本地测端口通不通,再怀疑账号密码
- 改端口或改认证方式之前,务必保留一个已经连上的会话,别把自己关在门外
坑三:主机指纹弹窗,闭眼点“是”
第一次连接某台服务器时,客户端会显示一段指纹让你确认。绝大多数人直接点是,但这恰恰是防止中间人冒充服务器的唯一一道关口。稳妥的做法是到云控制台或找管理员核对一下指纹,确认无误再接受。如果某天连同一台机器突然又弹出指纹变化,先别点,多半是重装系统,也可能是网络被劫持,问清楚再操作。
坑四:会话不保存,每次重新翻笔记
手里三五台服务器还能靠记忆,到了十几台就开始混乱。给每台机器起一个能看懂的名字,按项目或环境分组,把常用参数写进客户端的配置文件里做成别名,一条短命令就能连上。密码不要明文存在工具里,要么用密钥,要么交给系统自带的凭据管理。另外,登录后不知道自己到底在哪台机器上,是新手误删文件的头号原因,让命令行提示符带上主机名,能挡掉很多事故。
坑五:文件传输当成拖拽,大文件断在半路
- 传之前先看服务器剩余空间,别等传到一半提示写入失败
- 上百兆的文件优先用支持断点续传的传输方式,别用一次性的命令硬扛
- 关注属主和权限,传上去的网站文件经常因为权限不对而打不开
- 传输过程中不要随手关窗口或休眠电脑,中断后重新开始更浪费时间
实操清单:第一次连服务器按这个顺序来
- 确认地址、端口、用户名、认证方式四项信息齐全
- 核对主机指纹,确认后再保存会话
- 优先配置密钥登录,配置成功后关闭密码登录
- 保存会话并命名规范,写好备注
- 顺手设置连接保活,避免挂机几分钟就被断开
- 跑长任务前先开 tmux 或 screen,断线也不影响
出问题时,按这个顺序排查
先看网络和端口,再看服务器端的认证日志,最后看客户端的详细输出。客户端一般加一个详细模式参数就能打印握手全过程,卡在哪一步一目了然;服务器端的认证日志会明确写出是密码错误、密钥不匹配还是权限问题。按这个顺序走,比反复重装客户端有效得多。
SSH客户端不是装完就完事的工具,它连接的是你最重要的那台机器。把上面这几处提前理清楚,后面无论换工具还是换服务器,都能少走很多弯路。