在Windows的cmd窗口里登录服务器,核心命令只有一行:ssh 用户名@服务器IP,按下回车后输入密码即可完成登录。
怎么用cmd登录服务器?记住这条ssh命令就够
很多刚接触服务器的人,打开cmd之后盯着黑窗口发呆,不知道从哪下手,其实Windows 10和Windows 11都自带OpenSSH客户端,不用安装任何额外软件,你要做的只是把下面这条命令里的“用户名”和“服务器IP”替换成自己的实际信息:
ssh 用户名@服务器IP
举个例子,你的用户名是root,服务器IP是168.1.100,那么完整命令就是:
ssh root@192.168.1.100
按下回车之后,cmd会提示你输入密码,这里有个坑:输密码的时候屏幕上一个字都不显示,连星号都没有,这不是键盘坏了,也不是卡机了,是SSH协议故意的,防止别人偷窥,你只管把密码打完再按回车,就能看到Linux的命令行界面了。
这条命令看起来简单,但里面包含了三个关键要素:用户名、、服务器IP,用户名是你在服务器上登录的账号,是分隔符,IP是服务器所在地址,如果你想远程登录的服务器端口不是默认的22,那就要用到后面的参数了。
cmd登录服务器命令拆解:用户名、密码、IP和端口
把这条命令拆开看,每个部分都有讲究。
- 用户名:服务器上真实存在的系统账号,比如
root、ubuntu、admin,不能随便编。 - 固定分隔符,告诉ssh后面是主机地址。
- IP:服务器地址,可以是公网IP,也可以是内网IP。
- 密码:登录凭证,在cmd里输入密码时没有任何回显,这是安全机制。
如果你管理的服务器改了SSH端口,比如从22改成2222,就需要用-p参数指定端口,命令长这样:
ssh -p 2222 root@192.168.1.100
-p就是port的缩写,后面跟端口号,这条命令在连接非标准端口的服务器时非常常用。
行业共识认为,绝大多数Linux服务器默认使用22端口,但很多运营人员出于安全考虑会把SSH端口改掉,改完之后必须记住,否则下次登录时你会一脸茫然地卡在“Connection refused”这一步。
windows用cmd连接远程服务器的完整步骤
第一次在Windows上用cmd连服务器,可以照着下面的步骤走,我刚开始用的时候,在“是否信任主机”这一步犹豫了五分钟,其实就是按一个字母的事。
- 按
Win + R,输入cmd,回车打开黑色命令行窗口。 - 输入
ssh 用户名@服务器IP,比如ssh root@192.168.1.100。 - 按回车后,如果是第一次连接,屏幕上会显示一段英文提示,询问你是否继续连接,并显示服务器指纹,此时在“Are you sure you want to continue connecting?”后面输入
yes,再按回车。 - 出现“password”提示后,输入你的密码,注意光标不动,输完按回车。
- 看到类似
[root@host ~]#或这样的提示符,说明登录成功。
整个过程不需要点击下一步,也不需要配置参数,纯粹键盘操作,登录成功后,你就进入了一个Linux终端环境,可以执行各种命令。
如果你用的服务器是Windows Server系统,cmd登录的方式就不一样了,那需要用到mstsc远程桌面或winrm,而不是ssh,这里先不展开。
cmd登录服务器和第三方工具对比:哪个更省事
有人会问,既然cmd能登录,为什么还有人买Xshell或者下载Putty?我对比了一下,它们各有各的适用场景。
| 对比维度 | cmd自带ssh | Putty | Xshell |
|---|---|---|---|
| 安装成本 | 零,系统自带 | 免费,需下载 | 免费版,但部分功能受限 |
| 界面风格 | 黑底白字,极简 | 界面老,但直观 | 多标签,窗口化管理 |
| 会话保存 | 不支持,每次重输 | 支持保存会话 | 支持保存密码和会话 |
| 文件传输 | 需要scp命令 | 配套pscp工具 | 自带Xftp集成 |
| 适用人群 | 临时连接、快速运维 | 轻量工具爱好者 | 长期多服务器管理 |
cmd的ssh命令最大的优势是不用装东西,在公司电脑上临时连一台服务器,打开cmd就能干完活,老板都不知道,但如果你需要同时管理几十台机器,或者频繁传输文件,那Xshell这类工具确实更顺手。
不管你选择哪种方式,底层用的都是SSH协议,只要掌握了cmd里的ssh命令,其他工具的理解成本会低很多。
很多人关心的“价格”问题:cmd和Putty永远免费,Xshell个人版也是免费的,如果你在云厂商买的是按量付费的服务器,用cmd登录不会额外产生任何软件费用。
cmd登录服务器指定端口和常见报错排查
在实际工作中,最常遇到的不是“怎么登录”,而是“登录不上”,我把几个高频报错和解决办法整理了一下。
Connection refused
意思是被拒绝连接,多数情况下是端口不对,或者SSH服务没启动,先检查命令里有没有加-p指定正确端口,比如你改了端口却没用-p,就会出现这个问题。
Connection timed out
连接超时,说明你的电脑到服务器的网络不通,或者防火墙把端口挡了,我遇到过一个场景:成都机房的一台物理机,安全组没放行22端口,从外网折腾了半小时都连不上,最后发现是机房防火墙的问题。
云服务器还需要在控制台的安全组规则里放行对应端口,这一步很多人会忽略。
Permission denied
权限被拒绝,这通常意味着用户名或密码不对,或者服务器禁止密码登录,有些服务器为了安全,在配置文件sshd_config里设置了PasswordAuthentication no,这时你即使密码正确也登不上,业内专家指出,越来越多的云服务器默认关闭密码登录,改为强制使用密钥对。
Host key verification failed
主机密钥验证失败,这种情况多发生在服务器重装系统后,本机保存的旧指纹和新指纹对不上,解决办法是在cmd里执行:
ssh-keygen -R 服务器IP
把旧的指纹清除,再次连接时重新确认就行。
cmd登录服务器密码错误?先确认这三个问题
密码是登录的重中之重,但在cmd里输密码时的“无声反馈”让人容易犯错,如果你确认密码正确却提示错误,先查这三项。
- 大小写是否开启:Linux密码区分大小写,Caps Lock亮没亮,你自己都意识不到。
- 特殊字符是否按对:密码里的、、等符号,中文输入法下按出来的可能不对,建议先切到英文输入法。
- 粘贴是否生效:cmd窗口粘贴密码不支持直接
Ctrl+V,需要点鼠标右键或按Ctrl+Shift+V,如果粘贴成功但多了一个空格,也会提示密码错误。
还有一个容易被忽略的点:账号是否被锁定,多次输错密码后,多数Linux服务器会触发PAM策略,临时锁定账号几分钟,这时候再急也没用,等解锁再试。
如果你有云控制台,还可以试试用VNC登录服务器,然后直接执行passwd命令重置密码,再把密码改复杂一点。
cmd登录服务器后能干什么?日常操作举例
登录成功之后,你已经站在一台远程Linux机器面前了,这时候能做的操作比你想象中多,比如查看服务器资源占用:
top
或者看磁盘还剩多少:
df -h
修改配置文件,比如改Nginx站点设置:
vim /etc/nginx/nginx.conf
安装软件包也很常见:
yum install nginx
这些操作和你在本地Linux虚拟机里敲命令没有任何区别,区别只是你的键盘输入通过SSH传到了远端,屏幕上显示的结果也来自远端。
cmd登录服务器只是一扇门,门后面是完整的Linux世界,如果你连上去的目的是部署网站、跑脚本、查看日志,那么ssh命令足够撑起你的日常运维。
cmd登录服务器常见问题快速解答
为什么我输入密码的时候没有显示任何字符?
这是SSH的安全设计,为了防偷窥,密码输入时不回显任何内容,包括星号,正常输入后按回车即可,不必紧张。
cmd登录服务器后,怎么安全退出?
在命令行输入exit,或者按Ctrl + D,退出后cmd窗口会回到Windows本地环境。
cmd登录服务器需要网络吗?要开哪些端口?
需要网络连通,默认情况下,服务器必须开放TCP的22端口(如果改了端口则对应新端口),同时你的电脑能访问到这个IP,云服务器还需要在安全组和系统防火墙中都放行该端口,两者缺一不可。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/687946.html





