在 iPhone 上创建 SSH 密钥
你不需要电脑就能生成 SSH 密钥——一个好的 iPhone SSH 客户端能在设备上创建密钥对、安全保存私钥,并把公钥给你装到服务器上。之后连接就无需密码。本文展示完整流程:生成密钥、把公钥加到服务器、连接。截图用 TermAI。
为什么用密钥而不是密码?
- 更强——密钥对无法像密码那样被暴力破解。
- 更方便——设置好后,每次连接都不用输密码。
- 能安全关闭密码——密钥可用后,可以在服务器上彻底关闭密码登录。
SSH 密钥有两部分:私钥(留在手机上,永不离开)和公钥(你复制到每台服务器)。服务器用公钥来验证你持有的私钥。
第 1 步——在 iPhone 上生成密钥对
在 SSH 客户端里打开密钥管理,生成新密钥。TermAI 会创建一对 Ed25519 密钥(现代、短、推荐的默认),并把私钥存进设备的安全钥匙串——它留在手机上。之后你查看并复制公钥,去装到服务器上。
第 2 步——把公钥装到服务器
公钥(一行,以 ssh-ed25519 开头)要进服务器的 ~/.ssh/authorized_keys。三种方式:
- 一键,如果你已经连上:TermAI 能替你把密钥部署到服务器——它自动把公钥写进当前已连接主机的
authorized_keys,无需手动编辑。 - 手动,如果你还能用密码登录:先连上一次,然后运行:
mkdir -p ~/.ssh && echo "粘贴公钥" >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys - 新的树莓派 / 云 VM:很多场景允许在初始化时粘贴公钥(cloud-init、宿主的网页控制台,或 Raspberry Pi Imager)。
第 3 步——用密钥连接
把连接的认证设为密钥,选你生成的那把。连接——没有密码提示。如果还在问密码,说明公钥还没进 authorized_keys,或文件权限不对(必须是 600,~/.ssh 必须是 700)。
第 4 步(可选)——关闭密码登录
密钥登录可用后,你可以彻底关闭密码。在服务器的 /etc/ssh/sshd_config 里设 PasswordAuthentication no,重启 SSH。这样就只有你的密钥能进。做这步前先在另一个会话里测试密钥登录,以免把自己锁在外面。
常见问题
私钥存在 iPhone 哪里?
在 App 的安全存储 / 设备钥匙串里。它永不离开手机——你只把公钥复制到服务器。
Ed25519 还是 RSA?
用 Ed25519,除非服务器老到只支持 RSA。Ed25519 密钥更短,同等强度下被认为更安全。
同一把密钥能用于多台服务器吗?
能——把这一把公钥装到任意多台服务器。很多人每台设备用一把密钥。
怎么把密钥迁到新手机?
在新手机上生成一把新密钥,把它的公钥加到服务器,而不是导出私钥。如果客户端支持加密同步,也可以用同步。
快速事实
- 任务:在 iPhone 上创建并使用 SSH 密钥——无需电脑
- 生成:在 App 的密钥管理里;选 Ed25519
- 私钥:留在手机上(钥匙串);只有公钥发到服务器
- 安装:把公钥加到
~/.ssh/authorized_keys(权限 600) - 加固:密钥可用后,设
PasswordAuthentication no
Free on iOS and Android. 5 AI requests/day on the free tier, plus unlimited SSH/SFTP and built-in Tailscale.