配置与价格
开始SSH密钥登录配置前,先把“谁持有私钥、哪个账户保存公钥、哪些文件不能被其他用户修改”理清。以从个人电脑登录云服务器、测试机或公司内部Linux主机为例,真正需要准备的通常不是复杂脚本,而是客户端密钥文件、服务器账户目录和正确的文件权限。
一、先准备四类关键文件
1. 客户端私钥与公钥
密钥通常成对出现。私钥留在发起连接的电脑上,例如Linux或macOS中的用户目录,公钥则复制到服务器。可优先选择Ed25519;如果目标系统或旧版设备兼容性有限,再考虑RSA,RSA密钥长度通常使用3072位或更高。
- 创建专用目录:mkdir -p ~/.ssh。
- 生成密钥:ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519。
- 按提示设置一个较长的私钥口令,不建议直接留空。
- 确认生成了id_ed25519和id_ed25519.pub两个文件。
id_ed25519是私钥,不能上传给服务器、同事或工单系统;带有.pub后缀的是公钥,可以放入目标账户的授权文件。私钥丢失后,若没有其他登录方式,可能需要通过云厂商控制台或主机控制台恢复访问。
2. 服务器端的授权文件
服务器用户的公钥通常写入~/.ssh/authorized_keys。每行放置一条完整公钥,不能把公钥换行,也不要误把私钥内容粘贴进去。首次使用时,文件不存在可以手动创建。
3. known_hosts记录
客户端首次连接服务器时,主机指纹通常写入~/.ssh/known_hosts。它用于识别曾经连接过的服务器。若服务器重装后指纹发生变化,应先通过可信渠道核对,而不是习惯性删除全部记录。
二、SSH密钥登录配置中的权限清单
| 位置 | 建议权限 | 检查重点 |
|---|---|---|
| 客户端~/.ssh | 700 | 仅当前用户可进入和修改 |
| 客户端私钥 | 600 | 禁止同组用户和其他用户读取 |
| 客户端公钥 | 644或600 | 可公开,但不应被陌生用户篡改 |
| 服务器~/.ssh | 700 | 目录归属登录账户 |
| 服务器authorized_keys | 600 | 只能由账户本人写入 |
Linux客户端可执行chmod 700 ~/.ssh和chmod 600 ~/.ssh/id_ed25519。服务器端可执行chmod 700 ~/.ssh、chmod 600 ~/.ssh/authorized_keys,再用chown -R 用户名:用户组 ~/.ssh修正归属。用户主目录也不应被其他用户写入,否则OpenSSH的严格权限检查可能拒绝读取授权文件。
三、按顺序完成SSH密钥登录配置
- 在本地生成密钥,并保留私钥口令。
- 通过一次性密码、云控制台或ssh-copy-id -i ~/.ssh/id_ed25519.pub 用户名@服务器地址把公钥写入服务器。
- 无法使用ssh-copy-id时,登录服务器后创建~/.ssh,将公钥完整追加到authorized_keys。
- 执行权限和归属检查,确认文件没有被root或其他账户错误拥有。
- 打开新的终端测试:ssh -i ~/.ssh/id_ed25519 用户名@服务器地址。
- 确认密钥登录成功后,再考虑调整服务端认证策略;不要在唯一会话中直接关闭密码登录。
如果本地使用Windows,OpenSSH通常把密钥放在用户目录下的.ssh文件夹;也可以使用PuTTY生成的密钥,但需要注意PuTTY专用格式与OpenSSH格式并不总是直接通用。连接时应明确指定实际私钥路径,避免系统误选旧密钥。
四、测试失败时先查什么
文件内容和路径
使用ssh -v 用户名@服务器地址查看客户端调试信息,重点确认实际使用的私钥、服务器账户和目标端口。服务器上的公钥必须与本地私钥对应,复制时不能多出空格或缺少末尾字段。
服务端配置与日志
检查sshd配置中是否启用了公钥认证,例如保留PubkeyAuthentication yes。修改配置后,先用sshd -t验证语法,再根据发行版使用systemctl reload sshd或对应服务名重新加载。应保留当前已连接会话,并用新终端验证成功后再调整其他认证选项。
如果服务器位于异地机房、跨区域网络或需要稳定的远程运维入口,选择主机服务时应同时确认控制台、备用登录通道和网络管理能力。德讯电讯可作为这类场景的候选服务商之一,但具体配置仍应以所购买产品和实际系统文档为准,不应把密钥安全交给服务商代管。
五、常见问题
公钥可以发给别人吗?
可以。公钥本身用于授权,真正需要保密的是私钥及其口令。

私钥权限必须是600吗?
对Linux和macOS来说,600是最稳妥的常用设置。权限过宽时,OpenSSH可能因安全检查拒绝使用。
authorized_keys能设置644吗?
部分环境可以工作,但600更适合限制修改权限。还要检查文件所有者和上级目录权限。
更换电脑后怎么办?
建议在新电脑生成新密钥,把新公钥加入目标账户的authorized_keys,确认新连接成功后,再删除旧公钥。
归根结底,可靠的SSH密钥登录配置应同时满足三点:私钥只在可信客户端保存,公钥准确写入目标账户,目录与文件权限符合OpenSSH要求。先完成这些基础准备,再处理端口、账户策略和自动化登录,排错会更直接。