SSH 密钥免密登录与 SFTP 传文件:Termius 进阶两件事
本篇讲两件连上服务器之后最常用的进阶操作:把密码登录换成密钥免密登录,以及用内置 SFTP 在手机和服务器之间传文件。基础连接流程见安卓手机怎么连服务器远程运维。相关文档:安卓手机怎么连服务器远程运维.md · 手机管理群晖NAS与树莓派.md
一、为什么值得换密钥登录
密码登录两个麻烦:手机上输复杂密码痛苦;开着密码登录的服务器整天被扫。换密钥后,认证靠「你手机里的一把私钥」,不再输密码,服务器还可以干脆关掉密码登录,风险小一截。
原理一句话:公钥放服务器,私钥留手机。私钥从头到尾不离开设备。
二、在 Termius 里生成密钥
- 进 Keychain(密钥库),点 + 选 New SSH Key → Generate;
- 类型选 ED25519(主流选择,老服务器不认再退回 RSA 2048+);
- 设一个 passphrase 给私钥再上一道锁,开启记住口令后连接时不用重复输入;
- 保存后点开这把密钥能看到公钥内容(
ssh-ed25519开头的一长串)。
电脑上已有密钥想搬过来?在 New SSH Key 菜单里选导入,粘贴私钥文件完整内容(含 -----BEGIN OPENSSH PRIVATE KEY----- 首尾行)。能在手机上重新生成一把再部署公钥的话优先走这条路——私钥复制环节越少越安全。
三、把公钥装上服务器
挑一条顺手的路:
- 最省事:先用密码连上服务器,复制公钥,执行:
echo "ssh-ed25519 AAAA...你的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
- 云厂商面板:不少控制台能直接粘贴公钥绑到实例上;
- 有电脑在旁:
ssh-copy-id root@服务器地址一次搞定。
然后回 Hosts 编辑主机:认证方式改成 Key 并选中这把密钥,断开重连一次验证——不再要密码、直接进提示符即配置生效。确认无误后,单人使用的服务器可把 /etc/ssh/sshd_config 里 PasswordAuthentication 设为 no 再重启 sshd 收尾(改之前务必先确认密钥能登)。
密钥被拒(Permission denied (publickey))的高频原因:公钥没真进 authorized_keys、主机没绑对密钥、服务器端 ~/.ssh 权限不对(要 700,文件 600)、导入时丢了首尾行。
四、SFTP:不装任何东西就能传文件
SFTP 走 SSH 通道,能连上就能传,服务器端零配置,认证与终端共用一套(密码或密钥)。
- 入口:已连接的会话里直接开一个 SFTP 标签页(多标签并排,会话不断),或从主机详情进入文件界面;
- 双栏操作:一边手机本机、一边服务器目录,互相对传即可;传大文件别锁屏,后台被系统杀掉传输会中断(关掉电池优化可缓解);
- 权限:默认进家目录,要传
/var/www这类目录先在终端chown或传到家目录再sudo mv;终端里引用带空格、中文的文件名记得加引号。
五、顺手把内网服务「接」出来
端口转发与 SFTP 同源,都是 SSH 的能力。服务器上只听 127.0.0.1 的服务(数据库、测试中的 Web 应用),加一条 Local 规则:本地端口随便定,远端 localhost + 服务真实端口;连接生效后手机浏览器开 http://localhost:端口 看到的就是那个页面。改代码刷新即见,人在外面也能看效果。
六、去哪装
手机上还没有 Termius 的,Termius 安卓终端介绍站整理了它的安装包获取方式与安装步骤;家用设备(群晖、树莓派)的设备端开服务流程,见手机管理群晖NAS与树莓派。