先确认三件事,再打开任何软件
连接失败的原因,八成不在客户端。动手之前花两分钟核对:
- 服务器公网 IP 或内网地址,以及 SSH 端口(默认 22,很多云主机改成了别的端口)
- 登录用户名(Ubuntu 镜像常见 ubuntu,Debian 常见 admin,其他多为 root)
- 认证方式:密码,还是别人已经给你的私钥文件
再确认网络是否可达。Windows 打开 PowerShell,macOS 用终端,先做两步探测:
- ping 服务器IP
- nc -vz 服务器IP 22(macOS/Linux 可用;Windows 可写 Test-NetConnection 服务器IP -Port 22)
ping 不通不代表连不上,很多云主机关闭了 ICMP;但端口探测不通,基本就是安全组或系统防火墙没放行。
挑一款顺手的 Linux 远程连接工具
不必纠结排名,按使用场景选就行:
- 只连一两台机器、临时用:系统自带的 ssh 命令最省事,终端里一行搞定
- 需要图形化文件管理、看资源占用:FinalShell、MobaXterm 这类集成度高的客户端上手快
- 长期管理多台服务器、需要保存会话分组:Xshell、Termius、SecureCRT 更合适
- 团队协作、跨设备同步:优先考虑配置能云端同步的客户端
新手建议先用一款带左侧文件树和会话管理的客户端把流程跑通,再回到命令行补基础。工具替你省的是记忆成本,不是理解成本。
第一次连接:从密码登录开始
在客户端里新建连接,填地址、端口、用户名,认证方式选密码。首次连接会弹出主机指纹确认,直接接受即可;如果是生产环境,最好把提示里的指纹和运维给的指纹核对一下。
命令行方式更直接:
- ssh 用户名@服务器IP -p 端口
回车后输入密码。注意密码输入时屏幕没有任何反馈,这是正常的,输完直接回车。登录成功后建议立刻做两件事:
- 执行 whoami 和 uname -a,确认身份与系统版本
- 执行 sudo -v,确认这个账号有提权权限
连不上时按顺序排查:地址端口是否正确 → 安全组是否放行 → SSH 服务是否在跑(systemctl status sshd)→ 是否被 fail2ban 之类的防护工具拉黑。
把密码换成密钥,别再手打
密码登录方便但风险高,长期使用建议改成密钥认证。先在本机生成一对密钥:
- ssh-keygen -t ed25519 -C "你的备注"
- 一路回车,默认生成 ~/.ssh/id_ed25519 与同名 .pub 公钥
再把公钥送到服务器:
- ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器IP
Windows 上没有 ssh-copy-id,可以手动把公钥内容追加到服务器的 ~/.ssh/authorized_keys,并确认权限:
- chmod 700 ~/.ssh
- chmod 600 ~/.ssh/authorized_keys
确认密钥能登录之后,再考虑关闭密码登录:编辑 /etc/ssh/sshd_config,把 PasswordAuthentication 改成 no,然后重启 sshd。切记先验证再关闭,否则很容易把自己锁在门外。
图形化客户端则在连接属性里把认证方式切换为“公钥”,选中私钥文件即可。私钥不要外传,也不要放进网盘或聊天工具里传阅。
让连接更稳、更省事的几个配置
掉线、每次都要敲一长串命令,都能靠配置解决。在本机编辑 ~/.ssh/config:
- Host myserver
- HostName 1.2.3.4
- User root
- Port 2222
- IdentityFile ~/.ssh/id_ed25519
- ServerAliveInterval 60
保存以后只需要输入 ssh myserver。ServerAliveInterval 会定时发送心跳,减少长时间无操作被断开的情况;图形客户端里对应选项通常叫“保持连接”或 KeepAlive,填 60 秒即可。
需要经过跳板机才能访问内网机器时,用 ProxyJump:
- ssh -J 用户名@跳板机IP 用户名@内网IP
传文件与端口转发,顺手配好
多数 Linux 远程连接工具都内置 SFTP,左侧本机、右侧服务器,拖拽即可完成上传下载。命令行方式也很常用:
- scp 本地文件 用户名@服务器IP:/目标路径
- scp -r 本地目录 用户名@服务器IP:/目标路径
想访问服务器上只监听本机的服务,又不想对外开放端口,用本地转发:
- ssh -L 8080:127.0.0.1:80 用户名@服务器IP
然后在本地浏览器打开 127.0.0.1:8080 就能看到页面,比临时改安全组安全得多。
新手最常见的四个卡点
- 端口填错:云主机的 SSH 端口不一定是 22,控制台的安全组规则里能查到
- 用户名想当然:不同镜像默认用户不同,填错会直接提示 Permission denied
- 私钥权限过宽:Linux 和 macOS 下私钥权限必须是 600,否则会被拒绝使用
- 复制粘贴带空格:密码或公钥末尾多了一个换行,报错信息往往看不出真正原因
收尾:把一次成功变成可复用的习惯
连通只是第一步。建议把常用服务器整理成会话列表或 config 条目,统一改用密钥登录,并给每台机器标注用途和环境;生产环境再加一层跳板与操作审计。这样下次换电脑、换工具,同一套配置搬过去就能继续用,不必从头回忆当初是怎么连上的。