在 macOS 上通过 SSH 连接服务器
使用 Mac 自带工具,按经核实的步骤安全登录远程服务器。
快速开始
通过 SSH 连接服务器,用的是 macOS 自带的客户端,无需额外安装。本指南先带你完成几项值得提前做的检查——确认服务器已开启 SSH、核对主机密钥指纹、可选地把密钥口令存入钥匙串——最后执行真正的登录。
确认服务器已开启 SSH 服务
如果目标机器也是一台 Mac,必须先在服务器端开启“远程登录”,否则任何 ssh 连接都会失败。可由服务器上的管理员用 systemsetup 打开。开启后可在系统设置的“共享”面板中确认,或直接进行下一步连接测试。
systemsetup -setremotelogin 可以开启 macOS 的 SSH 服务,让你从另一台电脑登录这台 Mac。
$ sudo systemsetup -setremotelogin on▾ 撤销
$ sudo systemsetup -setremotelogin off连接前先核对服务器指纹
首次连接时 ssh 会要求你信任服务器的主机密钥。提前用 ssh-keygen 计算指纹,可以确认你连的是真正的目标机器,而不是冒名顶替者。当 ssh-keygen 显示的指纹与服务器管理员提供的指纹一致时,即表示核对成功。
计算任意 SSH 公钥或远程主机密钥的 SHA256 指纹,用于核对验证。
$ ssh-keygen -lf ~/.ssh/id_ed25519.pub
# Fingerprint of a remote host key:
ssh-keyscan example.com | ssh-keygen -lf -把 SSH 密钥口令存入钥匙串(可选)
如果你使用密钥而非密码登录,把口令存入 macOS 钥匙串后,ssh-agent 会自动加载密钥,无需每次手动输入。之后执行 ssh 连接时不再询问口令,即说明设置成功。
苹果版 ssh-add 专属参数 --apple-use-keychain 可以记住密码短语,让 ssh-agent 自动加载密钥,重启后依然有效。
$ ssh-add --apple-use-keychain ~/.ssh/id_ed25519▾ 撤销
$ ssh-add -D && ssh-add --apple-use-keychain ~/.ssh/id_ed25519 (re-add without passphrase by regenerating the key)使用 ssh 连接服务器
这是核心步骤:macOS 自带 ssh 客户端,无需安装。把命令中的用户名和地址换成你自己的服务器信息。当屏幕上出现远程主机的欢迎信息、命令提示符切换为远程 shell 时,说明连接成功。
用系统自带的 ssh 客户端安全连接另一台 Mac、Linux 服务器或家用主机。
$ ssh admin@192.168.1.20如何确认已解决
当终端提示符变成远程机器的 shell 并显示欢迎信息时即已连接;可在远程执行 hostname 等命令,确认自己确实在服务器上。
一键全部撤销
上面每一条命令都可以撤销。按此顺序执行即可全部还原。
$ ssh-add -D && ssh-add --apple-use-keychain ~/.ssh/id_ed25519 (re-add without passphrase by regenerating the key)
sudo systemsetup -setremotelogin off执行前请先确认——部分步骤之间可能并非相互独立。
来源
- systemsetup — set system settings (macOS man page)依据: Documents -setremotelogin on|off, which enables or disables sshd-based Remote Login.
- launchctl — interact with launchd (macOS man page)依据: Background on launchd services such as sshd that Remote Login toggles.
- SSH-KEYGEN(1) — OpenBSD manual依据: Documents -l (fingerprint), -f (file) and reading from stdin with -.
- ssh-add(1) — macOS man page依据: Documents --apple-use-keychain: the passphrase is added to the keychain and later loaded automatically by ssh-agent.
- ssh-add(1) — macOS man page依据: Apple's ssh-add variant supports --apple-use-keychain (formerly -K) to persist passphrases in the macOS keychain.
- ssh(1) man page依据: Man page for ssh: 'ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface] [-b bind_address] [-c cipher_spec] … [-p port] destination [command]' with destination in user@hostname form.
- ssh(1) - OpenSSH remote login client依据: Mirrors the ssh man page: ssh (SSH client) is a program for logging into a remote machine and executing commands, connecting as user@hostname.
最后验证: 2026-09-21