SSH是一种加密的远程登录协议,新手用命令行连服务器,核心就是记住ssh 用户名@服务器IP,然后输入密码或使用密钥完成认证。
SSH是什么?新手用命令行连服务器入门
SSH到底解决了什么问题
- 传统Telnet、FTP等协议用明文传输,密码和数据在网络上裸奔。
- SSH(Secure Shell)通过加密通道,把本地终端的输入加密后发到服务器,再把服务器输出加密传回。
- 默认使用22端口,支持密码、密钥、双因素等多种认证。
- 业内专家指出,SSH自1995年发布以来,已成为Linux和Unix服务器远程管理的事实标准。
- 它不仅能登录服务器,还能传文件(scp、sftp)、做端口转发、跑远程命令。
新手第一次用SSH连接服务器的完整流程
准备四样东西
- 服务器IP地址(公网IP或内网IP)
- SSH端口(默认22,可能被改成其他)
- 服务器上的用户名(如root、ubuntu、ec2-user)
- 密码或私钥文件
一条命令完成连接
打开本地终端:
- Windows 10/11:PowerShell或CMD
- macOS:Terminal
- Linux:任意终端
输入:
ssh root@192.168.1.1
首次连接会提示服务器指纹,输入yes,然后输入密码,密码输入时屏幕不显示任何字符,这是正常现象,回车后如果看到服务器命令提示符,就成功了,退出用exit或Ctrl+D。
如果端口不是22:
ssh -p 2222 root@192.168.1.1
如果用密钥:
ssh -i ~/.ssh/id_ed25519 root@192.168.1.1
Windows和Mac命令行SSH连接服务器有什么区别
- Windows 10 1809之后内置OpenSSH客户端,无需装PuTTY也能直接用
ssh。 - macOS和Linux自带OpenSSH,命令完全一致。
- 区别主要在路径和权限:Windows密钥文件权限用
icacls,Mac和Linux用chmod 600。 - Windows下如果习惯Linux环境,可以装WSL,体验和Mac几乎一样。
| 项目 | Windows PowerShell | macOS Terminal |
|---|---|---|
| 默认SSH客户端 | OpenSSH(系统自带) | OpenSSH(系统自带) |
| 密钥权限设置 | icacls 或属性面板 | chmod 600 |
| 配置文件路径 | C:Users你.sshconfig | ~/.ssh/config |
| 推荐终端 | Windows Terminal | iTerm2或自带 |
新手用SSH连服务器要花钱吗?免费场景与成本说明
- SSH协议本身免费,OpenSSH开源免费。
- 收费的是服务器资源,不是SSH,云服务器按配置和时长计费。
- 近年来,国内主流云厂商的入门级实例常有促销,价格随地域、配置波动,具体以控制台为准。
- 免费客户端:OpenSSH、PuTTY、Termius基础版、JuiceSSH(Android)。
- 免费密钥生成:
ssh-keygen本地运行,不产生费用。 - 如果你只是学习,可以用本地虚拟机(VirtualBox+Ubuntu)或WSL,完全免费。
SSH连接超时或拒绝怎么办?常见故障排查
- 先
ping 服务器IP,看网络是否通。 - 用
telnet IP 22或nc -zv IP 22测试端口,Windows可。Test-NetConnection IP -Port 22
- 检查云服务器安全组或防火墙是否放行22端口(或你改的端口)。
- 登录云控制台VNC,检查
systemctl status sshd,确保服务运行。 - 检查IP是否变化,弹性公网IP是否绑定。
- 本地网络可能封了22端口,换手机热点试试。
- 查看日志:
/var/log/auth.log(Debian/Ubuntu)或/var/log/secure(CentOS/RHEL)。
- 多数情况下,连接失败是因为安全组没放行端口,或IP填错。
为什么推荐用密钥登录而不是密码
- 行业共识认为,密码登录的风险远高于密钥登录,因为密码可能被暴力破解。
- 生成密钥对:
ssh-keygen -t ed25519 -C "your_email@example.com"
- 上传公钥:
ssh-copy-id user@服务器IP
或手动把
id_ed25519.pub内容追加到服务器~/.ssh/authorized_keys。 - 设置权限:
chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
- 关闭密码登录:编辑
/etc/ssh/sshd_config,设PasswordAuthentication no,然后sudo systemctl restart sshd。
新手容易踩的五个坑
- 用户名写成自己电脑的用户名,而不是服务器上的用户。
- 公网IP和内网IP混用,内网IP在外网连不上。
- 改了SSH端口却忘记加
-p。 - 私钥文件权限太开放,SSH直接拒绝加载。
- 服务器重装后指纹变化,提示中间人攻击,需要删除本地
known_hosts里旧记录。
让连接更顺手的进阶习惯
- 配置
~/.ssh/config:Host myserver HostName 192.168.1.1 User root Port 2222 IdentityFile ~/.ssh/id_ed25519
之后直接
ssh myserver即可。 - 修改默认端口、禁用root直接登录、安装fail2ban。
- 用
scp传文件:scp file.txt user@IP:/home/user/
- 用
ssh -L做本地端口转发,安全访问内网服务。
SSH不是什么高深魔法,它就是一条加密的命令行通道,新手只要记住ssh 用户名@IP,配好密钥,就能安全地管理服务器。
Q&A:关于SSH是什么新手用命令行连服务器入门常见问题
SSH和远程桌面有什么区别?
SSH是命令行加密通道,适合管理Linux服务器,资源占用低,一条命令就能操作,远程桌面如RDP、VNC提供图形界面,适合Windows或桌面环境,SSH不能直接显示图形,但可以通过X11转发或VNC over SSH实现,两者定位不同,服务器运维更常用SSH。
手机能用SSH连服务器吗?
可以,iOS有Termius、Prompt,Android有JuiceSSH、Termux,连接逻辑与电脑一致,输入IP、端口、用户名、密码或导入密钥即可,手机适合应急查看日志、重启服务,但输入命令效率较低。
新手用命令行连服务器,一定要记很多命令吗?
不用,核心命令就一条ssh,文件传输用scp或sftp,它们都基于SSH协议,先学会连接、退出(exit)、查看目录(ls)、编辑文件(nano或vim),就能完成大部分入门操作,后续再逐步学习权限管理、端口转发和自动化脚本。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/769732.html




