主题
02 · SSH 登录、密钥与基础生存命令
目标:用密钥安全登录云 Ubuntu,并掌握每天都会用的「生存命令」。
官方:OpenSSH Server(Ubuntu)
1. 环境前提
- 云机已开通 SSH(默认 22,或控制台里看到的端口)
- 本机有终端:Windows Terminal / PowerShell / Git Bash 均可
- WSL 对照:在 WSL 里同样用
ssh,密钥可放 WSL 的~/.ssh
2. 密钥登录(推荐默认)
2.1 本机生成密钥(若还没有)
bash
ssh-keygen -t ed25519 -C "your-email-or-note"1
一路回车可用默认路径;建议设 passphrase。
| 文件 | 作用 |
|---|---|
~/.ssh/id_ed25519 | 私钥,绝不外传 |
~/.ssh/id_ed25519.pub | 公钥,可放到服务器 |
2.2 把公钥放到服务器
云厂商常提供「粘贴公钥」;或密码登录后一次:
bash
# 本机(把 USER、HOST 换成你的)
ssh-copy-id -i ~/.ssh/id_ed25519.pub USER@HOST1
2
2
Windows 若无 ssh-copy-id:手动把 .pub 内容追加到服务器 ~/.ssh/authorized_keys(权限见下一篇;此刻可用面板)。
2.3 登录
bash
ssh USER@HOST
# 非 22 端口:
ssh -p 2222 USER@HOST1
2
3
2
3
可选本机 ~/.ssh/config:
text
Host mylab
HostName 1.2.3.4
User ubuntu
IdentityFile ~/.ssh/id_ed25519
Port 221
2
3
4
5
2
3
4
5
之后:ssh mylab。
3. 会话里的生存命令
进入服务器后,先建实验目录:
bash
mkdir -p ~/lab
cd ~/lab1
2
2
| 命令 | 作用 | 常用例子 |
|---|---|---|
pwd | 当前路径 | 迷路时先敲 |
ls | 列目录 | ls -la 看隐藏文件与权限 |
cd | 切换目录 | cd ~、cd -(上一处)、cd .. |
mkdir | 建目录 | mkdir -p a/b/c |
touch | 建空文件 / 更新时间 | touch note.txt |
cp | 复制 | cp a.txt b.txt;目录 cp -r src dst |
mv | 移动 / 重命名 | mv old.txt new.txt |
rm | 删除 | 先 ls 再删;目录 rm -r;慎用 -f |
cat | 整文件打印 | 小文件 |
less | 翻页看 | 大文件;q 退出 |
head / tail | 头/尾几行 | tail -n 50 app.log |
clear | 清屏 | 或 Ctrl+L |
history | 历史命令 | 配合上下箭头 |
路径心智:
text
/ 根
/home/你 家目录(~)
/etc 配置(改前先备份)
/var/log 日志常在这
/tmp 临时,重启可能清空1
2
3
4
5
2
3
4
5
4. 补全、帮助与「我是谁」
bash
whoami
hostname
id
echo $HOME
man ls # 手册;空格翻页,q 退出
ls --help # 很多 GNU 命令有简短帮助1
2
3
4
5
6
2
3
4
5
6
Tab:路径与命令补全;连按两次 Tab 可列出候选。
退出 SSH:exit 或 Ctrl+D。
5. 云机 vs WSL 短表
| 场景 | 云 Ubuntu | WSL2 |
|---|---|---|
| 登录 | ssh USER@HOST | 打开发行版即可,一般无需 SSH |
| 家目录 | /home/USER | 同左;也可用 /mnt/c/... 访问 Windows 盘 |
| 复制文件到机 | scp / rsync / SFTP | 直接在 /mnt/c 与 ~ 间 cp |
把本机文件拷到云机示例:
bash
scp ./local.txt USER@HOST:~/lab/1
6. 动手清单
- [ ] 本机存在 ed25519(或 rsa)密钥对
- [ ]
ssh USER@HOST无需密码(或仅需密钥 passphrase) - [ ] 服务器上
mkdir -p ~/lab && cd ~/lab - [ ] 用
ls -la、pwd、cat、less各操作一次 - [ ]
man man打开一次并q退出(确认会关手册)
7. 常见翻车
| 翻车 | 处理 |
|---|---|
Permission denied (publickey) | 查用户名、公钥是否在 authorized_keys、本机是否指定了正确 IdentityFile |
| 连上却马上断 | 安全组/防火墙未放行 SSH 端口;或云机宕机 |
rm 删错 | 练习机可重建;生产用版本库/备份,不要靠运气 |
| Windows 路径混进 Linux 命令 | 在 Git Bash/WSL 里用 Linux 风格路径 |
8. 官方入口
- Ubuntu:OpenSSH Server
man ssh、man ssh-keygen、man scp
下一篇:文件系统、权限与用户组 —— 读懂 ls -l 那一长串。
OS 深读:16 · 用户态 / 内核态与系统调用(strace 看见「敲命令在调内核」)。
