You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用meteor-up与Digital Ocean时SSH密钥无法正常工作

解决Meteor Up (mup) SSH密钥认证失败问题

看起来你已经做了不少基础配置,但还是遇到了认证失败的问题,咱们一步步排查:

1. 先验证SSH密钥本身能否直接连接服务器

先绕过mup,直接用终端测试SSH连接:

ssh root@139.49.141.100

如果这一步都失败,说明问题出在SSH密钥的基础配置上,和mup无关,先解决这个核心问题。

2. 检查本地SSH密钥文件的权限

SSH对密钥文件的权限要求很严格,权限过宽会被拒绝使用:

# 设置.ssh目录权限为700
chmod 700 /Users/MYUSERNAME/.ssh
# 设置私钥文件权限为600
chmod 600 /Users/MYUSERNAME/.ssh/id_rsa

3. 确认mup.js中的pem路径正确

你配置里写的/Users/MYUSERNAME/.ssh/id_rsa要确保是绝对正确的路径:

  • 替换MYUSERNAME为你实际的Mac用户名
  • 可以用ls /Users/MYUSERNAME/.ssh/id_rsa验证文件是否存在
  • 避免使用~简写,部分版本的mup可能无法正确解析波浪号路径

4. 核对DigitalOcean后台的公钥与本地公钥一致

本地公钥的内容必须和你在DO安全设置里添加的完全匹配:

# 查看本地公钥内容
cat /Users/MYUSERNAME/.ssh/id_rsa.pub

复制输出的完整内容(包括结尾的username@hostname部分),去DigitalOcean的Settings > Security > SSH Keys里对比,确保没有多余空格、换行或拼写错误。

5. 检查服务器端authorized_keys文件配置

用密码登录服务器后,确认你的公钥已经被正确写入~/.ssh/authorized_keys:

# 查看文件内容
cat ~/.ssh/authorized_keys
# 设置正确权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

如果文件里没有你的公钥,手动追加进去:

echo "你的本地公钥内容" >> ~/.ssh/authorized_keys

6. 尝试使用SSH Agent认证

如果本地启用了ssh-agent,可以简化认证流程:

  1. 在mup.js中注释掉pem行:
    // pem: '/Users/MYUSERNAME/.ssh/id_rsa',
    
  2. 本地加载密钥到ssh-agent:
    ssh-add /Users/MYUSERNAME/.ssh/id_rsa
    
  3. 重新执行mup setup

7. 检查服务器SSH配置

登录服务器后,确认SSH服务允许公钥认证:

  1. 编辑sshd配置文件:
    nano /etc/ssh/sshd_config
    
  2. 确保以下配置项为yes:
    RSAAuthentication yes
    PubkeyAuthentication yes
    
  3. 重启SSH服务(Ubuntu/Debian):
    systemctl restart sshd
    

8. 更新mup到最新版本

旧版本的mup可能存在SSH认证的bug,尝试更新:

npm install -g mup

更新后重新执行mup setup

按照以上步骤逐一排查,应该能解决你的认证问题。

内容的提问来源于stack exchange,提问作者Evanss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:55:28