2. 连接服务器
这是什么:SSH = Secure Shell,一套让你从本地电脑安全登录远程服务器、并在服务器上敲命令的协议。
为什么用:上一章我们已经备好一台 Ubuntu 服务器,可它远在几千公里外的机房——不建立连接,那台机器只是屏幕上的一个 IP 数字。SSH 顺带把传输内容加密,密码不会明晃晃跑在网络上。
如何用:本章先用密码登录一次找找感觉,再配置密钥免密登录,最后摸清 root 与 sudo 的边界。
2.1 方式一:密码登录
Linux/Mac 直接:
ssh root@1.2.3.4
你会看到:
The authenticity of host can't be established. Are you sure? (yes/no)
root@1.2.3.4's password:
Welcome to Ubuntu 24.04 LTS
root@server:~#
首次连接输入 yes,再输密码(输入看不见,敲完回车)。
Windows PowerShell 也自带 ssh 命令(Win10+ 内置 OpenSSH)。
2.2 方式二:密钥登录(推荐)
密码可暴力枚举,密钥是成对的钥匙串(私钥在你电脑、公钥在服务器),安全性高且免密:
# 1. 本机生成密钥对(一路回车)
ssh-keygen -t ed25519
# 2. 把公钥推到服务器上
ssh-copy-id root@1.2.3.4 # Windows 无此命令时手工把 .pub 内容粘到服务器 ~/.ssh/authorized_keys
# 3. 以后登录不需密码
ssh root@1.2.3.4
带密钥文件的登录(本博客部署脚本就是这种):
ssh -i ~/.ssh/my_key.pem root@1.2.3.4
安全习惯:私钥文件权限须 600(下一章学 chmod 时练);绝不把私钥上传架构库/发到群。
2.3 登录后立刻做的 5 件事
whoami # 我是谁
pwd # 我在哪
df -h # 磁盘还剩多少
free -h # 内存
exit # 或: logout / Ctrl+D —— 安全退出
2.4 必知:普通用户 vs root
- root 分身总裁可以干任何事(包括删掉自己系统)
- 日常操作用普通用户 + sudo(夏时给命令加权限),生产服务器经常直接禁 root 登录
sudo apt update
你会看到 sudo 提示输入当前用户密码(不是 root)。
2.5 动手改
- 用密码登录一次,再配置成免密
- 运行
ls ~/.ssh,看到authorized_keys即配好 - 试试
ssh -v root@ip的调试输出定位连接问题(仅作记录不作要求)
2.6 小结
ssh 用户名@IP即登录;首次要输 yes- 密钥登录是标配:ssh-keygen + 复制公钥
- root 危险,底幕习惯
sudo按需提权
下一章:文件与目录操作 🐸