終端和ssh

  • 什么是終端(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ù)器)
  • 安全地傳輸文件(配合 scpsftp
  • 隧道轉(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ù)提問!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容