- 什么是終端(Terminal)
- 什么是 SSH
- 它們之間的關(guān)系
- 常用操作和最佳實踐
??? 一、什么是終端(Terminal)?
終端 是一個用戶與操作系統(tǒng)內(nèi)核交互的文本界面。在 macOS 中:
- 默認(rèn)終端應(yīng)用:Terminal.app(也可用 iTerm2、Alacritty 等)
- 實際運行的是 shell(如
zsh、bash),負(fù)責(zé)解析并執(zhí)行命令
? 你可以通過終端:
- 運行本地命令(
ls,cd,git) - 啟動編輯器(
nano,vim,code) - 發(fā)起 SSH 連接遠(yuǎn)程服務(wù)器
?? 二、什么是 SSH?
SSH(Secure Shell) 是一種加密網(wǎng)絡(luò)協(xié)議,用于:
- 安全地遠(yuǎn)程登錄到另一臺計算機(通常是 Linux 服務(wù)器)
- 安全地傳輸文件(配合
scp或sftp) - 隧道轉(zhuǎn)發(fā)、端口代理等高級用途
基本語法:
ssh [用戶名@]主機地址
示例:
# 登錄遠(yuǎn)程服務(wù)器(默認(rèn)使用當(dāng)前用戶名)
ssh 192.168.1.100
# 指定用戶名
ssh user@example.com
# 指定端口(默認(rèn) 22)
ssh -p 2222 user@server.com
?? 三、終端 和 SSH 的關(guān)系
| 終端 | SSH |
|---|---|
| 本地程序,提供命令行界面 | 網(wǎng)絡(luò)協(xié)議,用于遠(yuǎn)程連接 |
| SSH 命令是在終端中運行的 | SSH 會話的內(nèi)容顯示在終端里 |
| 可以不使用 SSH(只操作本地) | SSH 必須依賴終端(或圖形化 SSH 工具) |
?? 簡單說:你在終端里輸入 ssh ...,就建立了一個到遠(yuǎn)程主機的安全會話,之后所有命令都在遠(yuǎn)程執(zhí)行,但結(jié)果顯示在本地終端。
?? 四、macOS 上使用 SSH 的最佳實踐
1. 生成 SSH 密鑰(免密登錄)
# 生成 RSA 或 Ed25519 密鑰(推薦后者)
ssh-keygen -t ed25519 -C "your_email@example.com"
# 默認(rèn)保存在 ~/.ssh/id_ed25519(私鑰)和 ~/.ssh/id_ed25519.pub(公鑰)
2. 將公鑰上傳到服務(wù)器
# 方法1:手動復(fù)制公鑰內(nèi)容到服務(wù)器的 ~/.ssh/authorized_keys
cat ~/.ssh/id_ed25519.pub | ssh user@server "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
# 方法2:使用 ssh-copy-id(macOS 需通過 Homebrew 安裝)
brew install ssh-copy-id
ssh-copy-id user@server
3. 配置別名(簡化連接)
編輯 ~/.ssh/config:
Host myserver
HostName 192.168.1.100
User alice
Port 22
IdentityFile ~/.ssh/id_ed25519
之后只需:
ssh myserver
4. 使用 SSH Agent(自動管理密鑰)
# 啟動 agent 并添加密鑰
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# 查看已加載密鑰
ssh-add -l
?? macOS 會自動集成鑰匙串,可設(shè)置密鑰密碼自動解鎖:
ssh-add --apple-use-keychain ~/.ssh/id_ed25519
??? 五、安全建議
- ? 使用 密鑰認(rèn)證,禁用密碼登錄(服務(wù)器端配置
PasswordAuthentication no) - ? 使用強密鑰(Ed25519 或 4096-bit RSA)
- ? 不要共享私鑰(
~/.ssh/id_*權(quán)限應(yīng)為600) - ? 定期輪換密鑰
?? 六、常用相關(guān)命令
| 命令 | 用途 |
|---|---|
ssh user@host |
遠(yuǎn)程登錄 |
scp file user@host:/path |
安全復(fù)制文件 |
sftp user@host |
交互式文件傳輸 |
ssh -L 8080:localhost:80 user@host |
本地端口轉(zhuǎn)發(fā) |
ssh -i keyfile user@host |
指定私鑰文件 |
?常見問題
Q:SSH 連接很慢?
A:檢查 DNS 反向解析,可在服務(wù)器 /etc/ssh/sshd_config 中加:
UseDNS no
Q:如何退出 SSH 會話?
A:輸入 exit 或按 Ctrl + D
Q:終端卡死無法退出?
A:按 Enter,然后輸入 ~.(波浪號加點)強制斷開
? 總結(jié)
- 終端 = 本地命令行界面
- SSH = 在終端中使用的遠(yuǎn)程安全連接工具
-
最佳組合:終端 + SSH 密鑰 +
~/.ssh/config別名 → 高效、安全、免密登錄
如果你有更具體的需求(比如:SSH 隧道、Git over SSH、連接 GitHub、跳板機等),歡迎繼續(xù)提問!