SSH是一种加密的网络协议,让你用命令行安全地远程登录服务器,管理网站和程序,就像给机房里的机器配了一把只有你有的钥匙。
新手学服务器,最先撞见的就是SSH,很多人第一次听说它,是在买VPS或云服务器时,服务商发来一串IP和密码,告诉你“用SSH连接”,这时候你打开电脑,界面黑底白字,光标闪啊闪,一时不知道该干嘛,别慌,这篇就是给你的。
SSH是什么,新手为什么绕不开它
SSH全称Secure Shell,翻译过来是“安全外壳”,它做的事很简单:让你在自己的电脑上,通过命令行操作远处机房里的那台服务器,所有传输的数据都是加密的,别人截获了也看不懂。
SSH的工作原理(用人话讲)
想象你有一把信物,服务器也有一把,两边碰面时先互相验证身份,然后用一套只有双方懂的暗号(加密通道)说话,这套暗号让密码、文件内容、操作指令,都变得不可破解,行业共识认为,SSH是目前远程管理Linux服务器最主流也最安全的方式,没有之一。
它默认跑在22端口,你不需要理解底层怎么加密,只要知道:
- 服务器开了SSH服务(一般默认开着)
- 你手上有IP、端口、用户名、密码(或密钥)
- 你的电脑装个SSH客户端(Windows和Mac都自带)
满足这三点,你就能从世界任何角落连上服务器,像坐在机房前一样敲命令。
SSH和Telnet的对比
新手可能听过Telnet这个词,Telnet是老一辈的远程登录工具,但它不加密,密码在网络上裸奔,一款抓包工具就能把你的root密码看得干干净净,SSH就是来替代Telnet的,下面这张表你扫一眼就能记住区别:
| 对比项 | SSH | Telnet |
|---|---|---|
| 数据加密 | 全部加密 | 明文传输 |
| 默认端口 | 22 | 23 |
| 安全性 | 高 | 极低 |
| 现状 | 行业标准 | 基本淘汰 |
用SSH连服务器的第一准则:绝不用Telnet。 只要涉及生产环境,SSH是唯一推荐的选择。
新手怎么用SSH连接服务器(分步操作)
这里不装高深的软件,直接用系统自带的工具,Windows用户和Mac用户略有差异,下面拆开说。

Windows电脑连接步骤
以Windows 10/11为例,系统自带了OpenSSH客户端。
- 打开“开始”菜单,搜索“cmd”或“PowerShell”,回车打开命令行窗口。
- 输入命令格式:
ssh 用户名@服务器IP - 比如你的服务器IP是
0.113.10,用户名是root,就输入:ssh root@203.0.113.10 - 第一次连接会提示你确认服务器的指纹,输入
yes回车。 - 接着输入服务器密码,注意:输密码时屏幕上没有任何显示,一个字都不出,这是正常的,别以为卡住了,敲完直接回车。
- 看到
root@服务器名:~#这种提示符,就说明你连上了。
Mac和Linux电脑连接步骤
Mac和Linux更简单,打开“终端”(Terminal),输入同样的ssh 用户名@IP命令即可,流程跟上面完全一致,唯一区别是Mac的Terminal在“启动台”的“其他”文件夹里。
别忽略端口参数
大多数服务器默认用22端口,所以在命令里不需要加端口,但如果你的服务器改了SSH端口(比如为了安全改成2222),就得用-p参数指定:
ssh -p 2222 root@203.0.113.10
端口少写一个,连接就失败。 这是新手最常见的翻车点之一,命令检查时先看端口有没有对上。
SSH连接不上服务器怎么办(简米云场景排查)
你照着上面的命令敲下去,结果屏幕卡住或直接报错,这太常见了,据不完全统计,新手第一次连SSH失败,很大比例是安全组规则没放行,而不是服务器本身出了问题。
以简米云服务器为例,你买了ECS实例以后,除了设置系统密码,还得去“云服务器控制台 → 安全组 → 配置规则”里放行入方向的22端口,否则你在家连到天荒地老也连不上。
按顺序排查,多数问题出在这几处:
- 检查IP是否填对:去控制台看公网IP,别把内网IP复制过来。
- 检查用户名对不对:简米云Ubuntu系统默认用户是
root,但有的系统镜像(比如Amazon Linux)默认用户是ec2-user,填错直接拒绝连接。 - 检查安全组规则:控制台里放行22端口,来源建议填
(代表任何地点都能连)。
0.0.0/0
- 检查服务器防火墙:在服务器内部输入
systemctl status firewalld查看是否拦截了22端口,需要的话执行systemctl stop firewalld暂时关闭测试。
超时和拒绝连接分别代表什么
这两个报错很多人混淆。Connection timed out表示请求发出去了没有回音,多半是网络不通、IP不对或者被防火墙丢弃。Connection refused表示服务器回应了,但22端口没开SSH服务,一般是服务没启动或端口改错了。
遇到问题不要连着换命令猛敲,静下来一个一个排查,命令行报错信息本身就是最好的老师,仔细读它说的话。
SSH和HTTPS有什么区别,为什么连服务器不用网页
这个问题的核心是:日常生活你用浏览器打开网站,用的是HTTPS协议(网址前面那个锁),那为什么管服务器不用浏览器?因为浏览器是给人看网页用的,而服务器需要的是执行命令、传文件、改配置,这些用图形界面反而不高效。
说白了:
| 对比项 | SSH | HTTPS |
|---|---|---|
| 用途 | 远程命令行管理服务器 | 浏览器安全访问网页 |
| 交互方式 | 输入命令 | 点击页面 |
| 端口 | 22 | 443 |
| 适合人群 | 开发者、运维 | 普通用户 |
SSH是文本指令交互,HTTPS是图文点击交互。 管理服务器用命令行,效率和可控性远超网页端,一些云厂商的控制台也提供“网页版终端”代替SSH,但那个本质上还是把SSH塞进了浏览器里,用起来有时还卡,不如本地命令行顺手。
SSH安全配置:三件套保平安
连上服务器只是开始,SSH的安全配置才是正经事,很多新手拿到服务器就裸奔,root密码设成123456,这跟把家门钥匙挂门口没区别,最近几年扫爆SSH密码的攻击行为相当普遍,恶意机器人全天候巡检公网IP,一碰就试,务必做下面三件事。
改用密钥登录代替密码登录
密钥是一对加密文件,一个私钥(留在你本地),一个公钥(放在服务器上),你连服务器时,手机会用私钥跟服务器上的公钥做数学验证,配对成功就放行,比密码安全得多,生成命令:

ssh-keygen -t ed25519
一路回车,生成完以后,把公钥复制到服务器:
ssh-copy-id root@服务器IP
然后修改服务器上的SSH配置文件(/etc/ssh/sshd_config),设置PasswordAuthentication no,禁用密码登录。
禁止root直接登录
root权限太大,一旦被攻破整个服务器沦陷,在sshd_config里设置PermitRootLogin no,平时用一个普通用户登录,需要提权时再用sudo,这样即使账号泄露,破坏范围也有限。
修改默认端口
把22改成高位端口(比如22026),可以避开几乎全部的自动化暴力扫描攻击,但改完记得让安全组也放行新端口,别把自己锁在外面。
SSH没有想象中那么神秘,它就是一套加密的远程登录规矩,学会它等于拿到了管理服务器的基本入场券,从今天起找个云服务器练手,敲下第一条ssh root@你的IP,往后的命令世界会越用越顺手。
SSH是什么的常见问题
ssh连接服务器要钱吗
不要钱,SSH协议是开源免费的技术标准,你的Windows、Mac、Linux系统里都自带了客户端,不需要购买任何软件授权,你用SSH连服务器不产生额外费用,但服务器本身是你从云厂商(比如简米云、酷番云)那儿租的,那是另一笔按年或按月付费的东西,有些便宜的活动机一年几十块钱,也能拿来练SSH操作。
SSH密码忘了怎么办
如果忘了服务器root密码,不用重装系统,简米云控制台里找到“重置实例密码”,设置新密码后,必须重启服务器才能生效,酷番云操作类似,在控制台的实例管理页面里找“重置密码”入口,重置完用新密码重新连一次SSH就行,之前改过的SSH配置不会受影响。
用SSH密钥连服务器失败了,原因是什么
多数原因是服务器端的公钥和本地的私钥对不上,或者sshd_config里路径写错了,另一个常见失误是私钥文件的权限太开放,系统会拒绝使用,Windows用户需要在文件属性里把私钥文件的访问权限收缩为“仅当前用户可读”,Mac和Linux用户在终端执行chmod 600 ~/.ssh/id_ed25519即可解决,修改完权限再重新连接,基本就能通过。