
租用香港服务器如何配置SSH密钥登录,关键是让密钥文件归正确账户所有,并确保其他用户不能修改它们。权限过宽可能让 OpenSSH 拒绝读取公钥;权限收得过紧、目录归属错误,也会导致登录失败。配置时应分别检查本地私钥、服务器端公钥文件和 sshd 设置。
先区分三类文件和权限
SSH 密钥对通常包含私钥和公钥。私钥留在发起连接的客户端,不应上传到服务器;公钥可以放入服务器账户的 authorized_keys 文件。OpenSSH 的 StrictModes 检查还会关注账户主目录及 .ssh 目录的所有权和可写权限。
- 客户端私钥:仅当前用户可读写通常较稳妥,Linux 或 macOS 上可设为 600。
- 服务器端 .ssh 目录:通常设为 700,避免其他用户写入。
- authorized_keys:通常设为 600,文件所有者应是要登录的账户。
公钥内容本身不是秘密,因此不必按私钥的保密等级处理;但不能让其他用户修改 authorized_keys,否则可能被植入未经授权的登录密钥。
按顺序配置并核对权限
在客户端生成密钥:运行 ssh-keygen -t ed25519,按提示选择保存位置,并为私钥设置口令。已有密钥时先确认文件用途,避免覆盖仍在使用的密钥。
把公钥安装到服务器账户。支持时可用 ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器地址;也可将 .pub 文件中的整行内容追加到该用户的 ~/.ssh/authorized_keys。不要复制私钥文件。
用已有方式登录服务器,检查账户和目录:运行 id,再查看主目录与密钥目录。若目录不存在,可由目标账户创建;若使用管理员账户操作,应明确指定目标用户名和其实际主组。
修复服务器端权限和归属:对目标账户执行 chmod 700 ~/.ssh、chmod 600 ~/.ssh/authorized_keys,并用 chown 将目录及文件归给该账户。不要不核实对象就对整个主目录递归修改权限。
在客户端用 ssh -i ~/.ssh/id_ed25519 用户名@服务器地址测试。确认密钥登录成功后,再考虑调整 sshd_config 中的 PasswordAuthentication 等设置;修改前先保留当前会话,并用 sshd -t 检查配置语法,再按系统服务管理方式重新加载 sshd。
最容易造成故障的权限误区
把权限改成 777,或对目录一刀切
777 表示任何本机用户都能读写和进入目录,可能触发 StrictModes 拒绝认证,也会扩大被篡改风险。相反,把 .ssh 目录设为 600 会失去目录所需的进入权限。应按对象分别设置:目录通常 700,authorized_keys 通常 600。
只改权限,不检查所有者
文件即使是 600,如果属于 root 或其他账户,目标用户也可能无法读取。可用 ls -ld 主目录 ~/.ssh 和 ls -l ~/.ssh/authorized_keys 查看属主、属组及权限,再针对目标账户修正。不同系统的账户主组名称未必与用户名相同,不要盲目套用用户名:用户名。
把客户端私钥权限误套到服务器公钥
客户端私钥权限过宽时,SSH 客户端可能提示私钥可被其他用户访问并拒绝使用,可在类 Unix 客户端执行 chmod 600 ~/.ssh/id_ed25519。服务器上的公钥不是私钥,但 authorized_keys 仍需避免被他人写入;两者用途不同,权限要求不能混为一谈。
尚未验证就关闭密码登录
新密钥可能放错账户、文件格式不完整,或服务端并未启用公钥认证。若先关闭密码登录,可能把自己锁在服务器之外。先用新终端测试密钥登录,确认目标账户和必要的管理入口都可用,再收紧认证方式;若启用了 SELinux,权限正确但仍失败时,可检查安全上下文,必要时对相应目录执行 restorecon。
按使用场景决定检查重点
单人管理的服务器,重点是保护客户端私钥、限制服务器端文件写权限,并确认密钥安装到了正确账户。多人共用主机时,应给每位管理员分配独立账户和密钥,避免共用一个 authorized_keys 管理身份;人员权限变化时,只移除对应公钥,不要清空其他人的记录。需要自动化连接的任务,则应使用专用账户和受限权限,避免把个人私钥复制到多台机器。
归纳租用香港服务器如何配置SSH密钥登录,顺序应是生成并保管私钥、安装公钥、核对所有权与权限、验证登录,最后才调整密码认证。出现拒绝登录时,先检查目标用户名、文件属主、目录权限和 sshd 日志,再改配置;不要靠放宽到 777 来碰运气。

常见问题
服务器上的 .ssh 目录必须是 700 吗?
700 是常见且稳妥的设置,允许账户所有者访问,阻止其他用户读写。目录若由其他账户持有或对他人开放写权限,公钥认证可能失败或增加风险。
authorized_keys 可以设置成 644 吗?
有些环境下 644 仍可读取,但 600 更能避免其他用户修改密钥列表,通常是更稳妥的选择。还应确认文件属于实际登录账户。
私钥能放在香港服务器上吗?
一般不应把用于登录该服务器的私钥放在服务器上。私钥应留在受控客户端,服务器只保存对应公钥;自动化场景也应单独评估密钥保管与访问范围。
权限看起来正确,为什么仍然无法登录?
还需检查公钥是否完整写入正确账户的 authorized_keys、sshd 是否启用公钥认证、客户端是否指定正确私钥,以及账户是否允许 SSH 登录。查看客户端详细连接输出和服务器认证日志,通常比反复修改权限更有效。
TG咨询