使用 SSH(最核心、最常用)
SSH (Secure Shell) 是一种加密的网络协议,用于在不安全的网络上安全地运行网络服务,它是远程管理 Linux 服务器的标准方式。

场景 1:使用密码登录(最简单)
这是最直接的方法,适合初次连接或临时使用。
步骤:
-
打开终端
- 在 Mac 上,你可以通过以下方式打开“终端”:
- 按
Command (⌘) + 空格键打开 Spotlight 搜索,输入Terminal并回车。 - 在“应用程序” > “实用工具”文件夹中找到“终端”。
- 按
- 在 Mac 上,你可以通过以下方式打开“终端”:
-
输入连接命令
(图片来源网络,侵删)- 在终端窗口中,输入以下命令:
ssh your_username@your_server_ip
- 将
your_username替换为你在 Linux 服务器上的用户名(root,ubuntu,centos等)。 - 将
your_server_ip替换为你的 Linux 服务器的公网 IP 地址或域名。
- 在终端窗口中,输入以下命令:
-
首次连接确认
- 如果是第一次连接该服务器,终端会显示服务器的公钥指纹,并询问你是否继续连接(
Are you sure you want to continue connecting (yes/no)?),输入yes并回车。
- 如果是第一次连接该服务器,终端会显示服务器的公钥指纹,并询问你是否继续连接(
-
输入密码
- 系统会提示你输入密码。*注意:你输入的字符是看不见的(不会显示星号 ``),这是正常的安全设计。** 直接输入密码,然后按回车。
-
成功登录
- 如果密码正确,你将看到服务器欢迎信息,并最终进入服务器的命令行提示符,
[username@server ~]$,这表示你已经成功登录。
- 如果密码正确,你将看到服务器欢迎信息,并最终进入服务器的命令行提示符,
场景 2:使用 SSH 密钥对(更安全、更便捷)
每次输入密码很麻烦,而且不安全,使用 SSH 密钥对是目前推荐的最佳实践,它通过一对加密密钥(公钥和私钥)来验证身份,无需输入密码。
步骤分为三部分:
第 1 步:在 Mac 上生成 SSH 密钥对(如果还没有的话)
- 打开 Mac 的“终端”。
- 输入以下命令并回车(邮箱地址可以替换成你自己的,方便识别):
ssh-keygen -t ed25519 -C "your_email@example.com"
-t ed25519指定使用更现代、更安全的 Ed25519 算法,如果旧系统不支持,也可以用ssh-keygen -t rsa -b 4096。
- 系统会提示你保存密钥的位置,直接按回车使用默认路径 (
~/.ssh/id_ed25519) 即可。 - 接着会要求你输入一个密码(用于保护你的私钥)。这个密码很重要! 如果你不设置,可以直接按回车留空,设置后,每次使用私钥时都需要输入这个密码,但可以极大提升安全性。
执行完毕后,你会在 ~/.ssh/ 目录下找到两个文件:
id_ed25519:你的私钥,绝对不能泄露给任何人!id_ed25519.pub:你的公钥,可以安全地分享给其他服务器。
第 2 步:将公钥复制到 Linux 服务器
有几种方法可以实现:
-
方法 A:使用
ssh-copy-id命令(最简单) 在 Mac 的终端中运行以下命令:ssh-copy-id your_username@your_server_ip
系统会提示你输入
your_username在服务器上的密码,输入后,ssh-copy-id会自动将你~/.ssh/id_ed25519.pub文件的内容追加到服务器上~/.ssh/authorized_keys文件的末尾。 -
方法 B:手动复制(
ssh-copy-id不可用)- 在 Mac 上查看并复制你的公钥内容:
cat ~/.ssh/id_ed25519.pub
这会输出一长串以
ssh-ed25519开头的文本,全选并复制它。 - 用密码登录到你的 Linux 服务器:
ssh your_username@your_server_ip
- 在服务器上,确保
.ssh目录存在且权限正确,然后创建或编辑authorized_keys文件:mkdir -p ~/.ssh chmod 700 ~/.ssh nano ~/.ssh/authorized_keys # 或者使用 vi/vim
- 将你刚才复制的公钥粘贴到
authorized_keys文件的末尾,保存并退出(在nano中是Ctrl + X,Y,然后回车)。 - 设置正确的文件权限(非常重要!):
chmod 600 ~/.ssh/authorized_keys
- 在 Mac 上查看并复制你的公钥内容:
第 3 步:使用密钥登录
你可以直接在 Mac 的终端中输入:
ssh your_username@your_server_ip
如果之前为私钥设置了密码,系统会提示你输入那个密码(不是服务器登录密码),如果没有设置,你将直接登录,无需任何密码!
使用图形界面工具(适合不习惯命令行的用户)
如果你更喜欢图形化的操作方式,可以使用支持 SSH 的 SFTP/FTP 客户端。
推荐工具:Cyberduck
Cyberduck 是一款免费、开源的 Mac 客户端,支持 FTP, SFTP, WebDAV, S3 等多种协议。
使用步骤:
- 下载并安装 Cyberduck:从 Cyberduck 官网 下载并安装。
- 新建连接:
- 打开 Cyberduck,点击左上角的“新建连接”按钮。
- 在协议下拉菜单中选择 SFTP (SSH File Transfer Protocol)。
- 在服务器地址栏输入你的服务器 IP 或域名。
- 在用户名栏输入你的服务器用户名。
- 认证:
- 如果使用密码:点击“连接”按钮,然后在弹出的窗口中输入你的密码。
- 如果使用 SSH 密钥:点击右下角的“更多...” > “编辑连接设置”,在“身份验证”选项卡中,选择“公钥”,然后从你的钥匙串中选择你之前生成的私钥文件 (
id_ed25519),点击“连接”即可。
- 访问文件:
连接成功后,你会看到一个类似 Finder 的窗口,里面显示的是服务器上的文件和目录,你可以像在 Mac 上一样进行拖拽上传、下载、删除、重命名等操作。
使用高级终端工具(提升效率)
对于需要频繁操作服务器的开发者来说,Mac 自带的终端虽然功能齐全,但在多标签页、分屏、主题等方面可能不够强大,可以使用更现代的终端模拟器。
推荐工具:iTerm2
iTerm2 是 macOS 上一款功能极其强大的终端,支持分屏、自动完成、搜索、主题等高级功能。
使用步骤:
- 下载并安装 iTerm2:从 iTerm2 官网 下载并安装。
- 基本使用:
- iTerm2 的使用方法和 Mac 自带的终端几乎一样,你只需要在里面输入
ssh your_username@your_server_ip即可。
- iTerm2 的使用方法和 Mac 自带的终端几乎一样,你只需要在里面输入
- 进阶功能:
- 分屏:
Command + D(垂直分屏),Command + Shift + D(水平分屏),Command + Shift + T(新建标签页),这些功能可以让你同时查看多个服务器或执行多个命令。 - 自动保存会话:iTerm2 可以自动保存你的所有会话窗口和标签页,下次打开时可以无缝恢复。
- 集成 Zsh/Oh My Zsh:iTerm2 是安装和使用 Zsh(一个更强大的 Shell)及其框架(如 Oh My Zsh)的绝佳环境。
- 分屏:
总结与最佳实践
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| SSH (密码) | 简单直接,无需额外配置 | 安全性较低,每次都要输密码 | 临时、一次性连接;紧急情况 |
| SSH (密钥对) | 安全、便捷、自动化 | 需要初始配置 | 日常推荐,所有长期使用的场景 |
| 图形化工具 | 直观,适合管理文件 | 占用资源,不适合复杂操作 | 主要用于上传下载文件,非技术人员 |
| 高级终端 | 功能强大,效率极高 | 需要学习成本 | 开发者、系统管理员、重度终端用户 |
最佳实践建议:
-
默认使用 SSH 密钥对登录:这是安全性和便利性的最佳平衡点。
-
为私钥设置密码:即使私钥被窃取,没有密码也无法使用。
-
使用
ssh-agent:为了方便,可以使用 macOS 自带的ssh-agent来缓存你的私钥密码,这样你只需要在登录第一个会话时输入一次,其他新的终端会话就可以复用,无需重复输入。 -
配置 SSH 配置文件 (
~/.ssh/config):如果你需要连接多个服务器,可以在 Mac 上创建一个config文件来简化命令。示例
~/.ssh/config文件:Host webserver HostName 203.0.113.10 User root Port 22 IdentityFile ~/.ssh/id_ed25519 Host gitlab HostName gitlab.com User git IdentityFile ~/.ssh/id_ed25519_gitlab配置好后,你只需要输入
ssh webserver或ssh gitlab就能连接,无需每次都输入完整的 IP 和用户名。
