凌峰创科服务平台

Mac如何远程访问Linux服务器?

使用 SSH(最核心、最常用)

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

Mac如何远程访问Linux服务器?-图1
(图片来源网络,侵删)

场景 1:使用密码登录(最简单)

这是最直接的方法,适合初次连接或临时使用。

步骤:

  1. 打开终端

    • 在 Mac 上,你可以通过以下方式打开“终端”:
      • Command (⌘) + 空格键 打开 Spotlight 搜索,输入 Terminal 并回车。
      • 在“应用程序” > “实用工具”文件夹中找到“终端”。
  2. 输入连接命令

    Mac如何远程访问Linux服务器?-图2
    (图片来源网络,侵删)
    • 在终端窗口中,输入以下命令:
      ssh your_username@your_server_ip
    • your_username 替换为你在 Linux 服务器上的用户名(root, ubuntu, centos 等)。
    • your_server_ip 替换为你的 Linux 服务器的公网 IP 地址或域名。
  3. 首次连接确认

    • 如果是第一次连接该服务器,终端会显示服务器的公钥指纹,并询问你是否继续连接(Are you sure you want to continue connecting (yes/no)?),输入 yes 并回车。
  4. 输入密码

    • 系统会提示你输入密码。*注意:你输入的字符是看不见的(不会显示星号 ``),这是正常的安全设计。** 直接输入密码,然后按回车。
  5. 成功登录

    • 如果密码正确,你将看到服务器欢迎信息,并最终进入服务器的命令行提示符,[username@server ~]$,这表示你已经成功登录。

场景 2:使用 SSH 密钥对(更安全、更便捷)

每次输入密码很麻烦,而且不安全,使用 SSH 密钥对是目前推荐的最佳实践,它通过一对加密密钥(公钥和私钥)来验证身份,无需输入密码。

步骤分为三部分:

第 1 步:在 Mac 上生成 SSH 密钥对(如果还没有的话)

  1. 打开 Mac 的“终端”。
  2. 输入以下命令并回车(邮箱地址可以替换成你自己的,方便识别):
    ssh-keygen -t ed25519 -C "your_email@example.com"
    • -t ed25519 指定使用更现代、更安全的 Ed25519 算法,如果旧系统不支持,也可以用 ssh-keygen -t rsa -b 4096
  3. 系统会提示你保存密钥的位置,直接按回车使用默认路径 (~/.ssh/id_ed25519) 即可。
  4. 接着会要求你输入一个密码(用于保护你的私钥)。这个密码很重要! 如果你不设置,可以直接按回车留空,设置后,每次使用私钥时都需要输入这个密码,但可以极大提升安全性。

执行完毕后,你会在 ~/.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 不可用)

    1. 在 Mac 上查看并复制你的公钥内容:
      cat ~/.ssh/id_ed25519.pub

      这会输出一长串以 ssh-ed25519 开头的文本,全选并复制它。

    2. 用密码登录到你的 Linux 服务器:
      ssh your_username@your_server_ip
    3. 在服务器上,确保 .ssh 目录存在且权限正确,然后创建或编辑 authorized_keys 文件:
      mkdir -p ~/.ssh
      chmod 700 ~/.ssh
      nano ~/.ssh/authorized_keys  # 或者使用 vi/vim
    4. 将你刚才复制的公钥粘贴到 authorized_keys 文件的末尾,保存并退出(在 nano 中是 Ctrl + XY,然后回车)。
    5. 设置正确的文件权限(非常重要!):
      chmod 600 ~/.ssh/authorized_keys

第 3 步:使用密钥登录

你可以直接在 Mac 的终端中输入:

ssh your_username@your_server_ip

如果之前为私钥设置了密码,系统会提示你输入那个密码(不是服务器登录密码),如果没有设置,你将直接登录,无需任何密码!


使用图形界面工具(适合不习惯命令行的用户)

如果你更喜欢图形化的操作方式,可以使用支持 SSH 的 SFTP/FTP 客户端。

推荐工具:Cyberduck

Cyberduck 是一款免费、开源的 Mac 客户端,支持 FTP, SFTP, WebDAV, S3 等多种协议。

使用步骤:

  1. 下载并安装 Cyberduck:从 Cyberduck 官网 下载并安装。
  2. 新建连接
    • 打开 Cyberduck,点击左上角的“新建连接”按钮。
    • 在协议下拉菜单中选择 SFTP (SSH File Transfer Protocol)
    • 在服务器地址栏输入你的服务器 IP 或域名。
    • 在用户名栏输入你的服务器用户名。
  3. 认证
    • 如果使用密码:点击“连接”按钮,然后在弹出的窗口中输入你的密码。
    • 如果使用 SSH 密钥:点击右下角的“更多...” > “编辑连接设置”,在“身份验证”选项卡中,选择“公钥”,然后从你的钥匙串中选择你之前生成的私钥文件 (id_ed25519),点击“连接”即可。
  4. 访问文件

    连接成功后,你会看到一个类似 Finder 的窗口,里面显示的是服务器上的文件和目录,你可以像在 Mac 上一样进行拖拽上传、下载、删除、重命名等操作。


使用高级终端工具(提升效率)

对于需要频繁操作服务器的开发者来说,Mac 自带的终端虽然功能齐全,但在多标签页、分屏、主题等方面可能不够强大,可以使用更现代的终端模拟器。

推荐工具:iTerm2

iTerm2 是 macOS 上一款功能极其强大的终端,支持分屏、自动完成、搜索、主题等高级功能。

使用步骤:

  1. 下载并安装 iTerm2:从 iTerm2 官网 下载并安装。
  2. 基本使用
    • iTerm2 的使用方法和 Mac 自带的终端几乎一样,你只需要在里面输入 ssh your_username@your_server_ip 即可。
  3. 进阶功能
    • 分屏Command + D (垂直分屏), Command + Shift + D (水平分屏), Command + Shift + T (新建标签页),这些功能可以让你同时查看多个服务器或执行多个命令。
    • 自动保存会话:iTerm2 可以自动保存你的所有会话窗口和标签页,下次打开时可以无缝恢复。
    • 集成 Zsh/Oh My Zsh:iTerm2 是安装和使用 Zsh(一个更强大的 Shell)及其框架(如 Oh My Zsh)的绝佳环境。

总结与最佳实践

方法 优点 缺点 适用场景
SSH (密码) 简单直接,无需额外配置 安全性较低,每次都要输密码 临时、一次性连接;紧急情况
SSH (密钥对) 安全、便捷、自动化 需要初始配置 日常推荐,所有长期使用的场景
图形化工具 直观,适合管理文件 占用资源,不适合复杂操作 主要用于上传下载文件,非技术人员
高级终端 功能强大,效率极高 需要学习成本 开发者、系统管理员、重度终端用户

最佳实践建议:

  1. 默认使用 SSH 密钥对登录:这是安全性和便利性的最佳平衡点。

  2. 为私钥设置密码:即使私钥被窃取,没有密码也无法使用。

  3. 使用 ssh-agent:为了方便,可以使用 macOS 自带的 ssh-agent 来缓存你的私钥密码,这样你只需要在登录第一个会话时输入一次,其他新的终端会话就可以复用,无需重复输入。

  4. 配置 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 webserverssh gitlab 就能连接,无需每次都输入完整的 IP 和用户名。

分享:
扫描分享到社交APP
上一篇
下一篇