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

Debian 8使用scp复制日志文件遇Permission denied(publickey)求解

解决Debian 8下SCP出现Permission denied (publickey)的问题

我来帮你一步步排查解决这个问题,毕竟Permission denied (publickey)是SSH/scp场景里非常常见的认证问题,尤其是用root用户跨机器操作时。以下是针对你的情况的具体解决步骤:

1. 检查本地是否存在SSH密钥对

首先确认你的Debian 8机器上有没有生成过SSH密钥对,打开终端执行:

ls -la ~/.ssh/

如果输出里没有id_rsa(私钥)和id_rsa.pub(公钥)这类文件,说明你还没生成密钥对,执行下面的命令生成:

ssh-keygen -t rsa

执行过程中一路按回车即可(不需要设置密码,除非你需要额外的安全验证),生成后会在~/.ssh/目录下创建密钥文件。

2. 将本地公钥上传到日志服务器的root用户授权列表

这一步是让日志服务器信任你的本地机器,最简单的方式是用ssh-copy-id命令:

ssh-copy-id root@logs.company.com

执行后会提示你输入日志服务器root用户的密码(如果之前没配置过密钥登录的话),输入后公钥会自动添加到远程服务器/root/.ssh/authorized_keys文件中。

如果ssh-copy-id命令不可用,你可以手动操作:

  • 先在本地终端打印公钥内容:
    cat ~/.ssh/id_rsa.pub
    
  • 复制输出的全部内容,然后通过SSH登录到日志服务器,编辑/root/.ssh/authorized_keys文件(如果文件不存在就新建),把复制的公钥粘贴进去并保存。
  • 关键!设置正确的权限(SSH对权限要求很严格):
    chmod 700 /root/.ssh
    chmod 600 /root/.ssh/authorized_keys
    

3. 检查日志服务器是否允许root用户通过SSH密钥登录

有时候服务器会禁用root用户的SSH登录,或者只允许密码登录。你需要登录到日志服务器,修改SSH配置:

  • 编辑/etc/ssh/sshd_config文件:
    nano /etc/ssh/sshd_config
    
  • 找到PermitRootLogin这一行,修改为:
    PermitRootLogin yes
    # 或者如果想只允许密钥登录(更安全),可以设为:PermitRootLogin without-password
    
  • 保存文件后,重启SSH服务(Debian 8用service命令):
    service ssh restart
    

4. 测试SSH连接,再尝试SCP

先测试能不能正常通过SSH登录日志服务器:

ssh root@logs.company.com

如果能成功登录,说明密钥认证已经生效,再执行你原来的SCP命令应该就没问题了:

scp root@logs.company.com:/srv/log/2018-05-08/payyex_prod_wallet_log /home/cherryl/Desktop

如果还是有问题,可以用verbose模式查看详细报错信息,方便进一步排查:

ssh -v root@logs.company.com
# 或者scp的verbose模式:
scp -v root@logs.company.com:/srv/log/2018-05-08/payyex_prod_wallet_log /home/cherryl/Desktop

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 04:14:19