选择软件前先明确用途:是以命令行为主(SSH 终端)、以图形化文件传输为主(SFTP 客户端),还是需要远程桌面或开发集成。常见分类包括:纯终端(如 iTerm2、Mac 自带 Terminal)、图形化 SSH 管理(如 Termius)、SFTP/FTP 文件传输(如 Cyberduck、Transmit、FileZilla)和集成化开发工具(如 Visual Studio Code 的 Remote - SSH)。
选择建议:如果你偏好命令行,优先安装 iTerm2;若希望可视化管理多个主机、支持密钥同步,选择 Termius;需要稳定的文件传输选 Cyberduck 或 Transmit;频繁做端口映射或远程调试,可配合 VS Code 使用 Remote - SSH 插件。
考虑因素包括:支持的协议(SSH、SFTP、SCP)、是否支持 SSH 密钥、是否支持端口转发、是否有会话管理与标签页、是否支持 macOS 原生快捷键、是否收费以及是否能与云服务(如 AWS/GCP/Azure)集成。
命令行优先:iTerm2;图形化优先:Termius 或 Cyberduck;开发调试:VS Code + Remote - SSH。
先试用免费版或社区版,再决定是否购买付费功能。
Mac 软件安装通常有两种方式:通过官方网站下载 .dmg/.pkg,或使用 Homebrew(包管理器)安装。以下以 iTerm2、Termius、Cyberduck 为例给出步骤。
访问软件官网,下载对应的 .dmg 文件,双击挂载后将应用拖入 /Applications 文件夹,首次运行可能需要在“系统偏好设置 → 隐私与安全”中允许。
如果喜欢命令行,可以先安装 Homebrew(/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"),然后运行:brew install --cask iterm2。
从 App Store 或官网安装时注意版本兼容 macOS 版本,并在首次运行时允许对应的系统权限(如网络权限、辅助功能等)。
使用 SSH 密钥比密码更安全。常见流程:在 Mac 上使用 ssh-keygen 生成密钥对,把公钥放到服务器的 authorized_keys 文件中,然后配置客户端进行连接。
在 Terminal 或 iTerm2 中运行:ssh-keygen -t ed25519 -C "your_email@example.com",按提示保存到默认位置(~/.ssh/id_ed25519)。随后运行 eval "$(ssh-agent -s)" 并使用 ssh-add --apple-use-keychain ~/.ssh/id_ed25519(macOS 上可把密钥加入钥匙串)。
如果服务器支持 ssh-copy-id,可运行:ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server_ip。若无该命令,可手动在服务器上创建 ~/.ssh/authorized_keys 并粘贴公钥,确保权限为 700(~/.ssh)和 600(authorized_keys)。
在 ~/.ssh/config 中添加主机别名以简化连接,例如:
Host myserver
HostName server_ip
User ubuntu
IdentityFile ~/.ssh/id_ed25519
AddKeysToAgent yes
这样以后只需 ssh myserver 即可连接。
常见问题包括“连接被拒绝”、“权限被拒绝(publickey)”、“超时”以及“端口被阻塞”。排查时按网络、配置、权限、服务四个维度检查。
确认本地网络能访问服务器 IP,使用 ping(若允许)和 telnet server_ip 22 或 nc -vz server_ip 22 检查 SSH 端口是否开放。云平台(如 AWS)需检查安全组/防火墙规则是否允许 22 端口或自定义端口。
遇到 “Permission denied (publickey)” 时,检查 ~/.ssh/authorized_keys 是否包含当前公钥,目录与文件权限是否正确(700/600),以及客户端是否使用了正确的 IdentityFile。可以使用 ssh -vvv user@server 查看调试输出。
如果 SSH 服务未运行,需要在服务器上(有控制台)检查 sshd 服务状态:sudo systemctl status sshd(或 ssh)。另外检查 /etc/ssh/sshd_config 中的配置是否更改了默认端口或禁用了密码/密钥认证方式。
SFTP 文件传输常用 Cyberduck、Transmit、FileZilla。连接时选择 SFTP 协议,填写主机、端口、用户名,选择使用密钥或密码认证。连接后即可拖拽文件进行上传/下载。
安装 VS Code 的 Remote - SSH 插件,配置 ~/.ssh/config 后,在命令面板中选择“Remote-SSH: Connect to Host...”,选择主机即可在远程环境中打开文件并本地编辑运行,适合开发和调试。
本地端口转发(将本地 8080 转到远程 3000):ssh -L 8080:localhost:3000 user@server;远程端口转发(将远程端口映射到本地):ssh -R remote_port:localhost:local_port user@server。Termius 等图形化客户端也通常支持在会话设置中配置端口转发。
对于批量同步,推荐使用 rsync(例如:rsync -avz -e "ssh" localdir/ user@server:/path/),既高效又可断点续传;结合 cron 或 launchd 可实现自动化同步。