使用scp传输文件时,出现“Permission denied, please try again.“的解决方案

在这里插入图片描述



前言

Linux 和类 Unix 系统中,scp(Secure Copy)命令是一个非常实用的工具,它基于 SSH(Secure Shell)协议,用于在本地主机和远程主机之间安全地复制文件和目录。

1、问题描述

在虚拟机的操作场景下,当尝试使用 scp 命令将本地文件传输到目标机器时,出现了权限相关的报错。具体来说,使用如下的 scp 命令:

scp /opt/text_scp.txt root@192.168.101.181:/opt

此命令的目的是把本地 /opt 目录下的 text_scp.txt 文件传输到目标机器(IP 地址为 192.168.101.181)的 /opt 目录。然而,执行该命令后,系统返回了如下报错信息:

Permission denied, please try again.

这表明当前操作没有获得足够的权限来完成文件传输,以下是报错的截图:
在这里插入图片描述


2、原因分析

出现“Permission denied”错误,一般与 SSH 服务的配置有关。SSH服务对应配置文件/etc/ssh/sshd_config中的参数PermitRootLoginPasswordAuthentication被设置为no。这会对登录权限造成限制。以下是配置文件相关部分的截图:
在这里插入图片描述

2.1、PermitRootLogin 参数

PermitRootLogin 设置为 no 时,系统会禁用使用 root 用户登录。在使用 scp 命令时,如果指定的是 root 用户(如 root@192.168.101.181),而该参数被设置为 no,就会导致权限不足,无法完成文件传输。

2.2、PasswordAuthentication 参数

PasswordAuthentication 设置为 no,表示系统禁用了使用密码方式登录。虽然还可以使用密钥方式登录,但使用的 scp 命令通常依赖密码认证来完成身份验证。所以,当该参数为 no 时,也会出现权限拒绝的错误。


3、解决方案

要解决这个问题,需要根据实际的业务需求,对 PermitRootLoginPasswordAuthentication 参数的配置进行修改。

3.1、打开SSH配置文件

首先,需要找到 SSH 服务的配置文件并进行编辑。在 Linux 系统中,该配置文件位于 /etc/ssh/sshd_config。可以使用 vim 编辑器来打开它,命令如下:

vim /etc/ssh/sshd_config

打开配置文件后,找到 PermitRootLoginPasswordAuthentication 这两个参数,并根据业务需求修改它们的值。以下是修改参数时的截图:
在这里插入图片描述

3.1.1、允许root 用户登录

如果业务需要使用 root 用户进行文件传输,那么请将 PermitRootLogin 参数值设置为 yes。这样,系统就会允许使用 root 用户登录。

3.1.2、允许密码方式登录

若需要使用密码方式进行身份验证,将 PasswordAuthentication 参数值设置为 yes

3.1.3、保存配置

设置完成后,保存并退出 vim 编辑器(在 vim 中,按下 Esc 键,输入 :wq 并回车即可保存退出)。

3.2、 重启SSH服务

修改配置文件后,需要重启 SSH 服务,让新的配置生效。可以使用 systemctl 命令来重启 SSH 服务,命令如下:

systemctl restart sshd.service

此命令会停止并重新启动 SSH 服务,加载新的配置参数。

3.3、 重新执行scp

SSH 服务重启完成后,再次执行之前的 scp 命令:

scp /opt/text_scp.txt root@192.168.101.181:/opt

此时,应该可以正常完成文件传输。以下是重新执行 scp 命令成功的截图:
在这里插入图片描述


4、总结

在虚拟机中使用 scp 命令传输文件遇到权限拒绝问题时,主要是由于 SSH 配置文件中 PermitRootLoginPasswordAuthentication 参数的设置不当。可以根据业务的实际需求:

  1. 将这两个参数修改为 yes
  2. 然后重启 SSH 服务。

就能够解决权限问题,顺利完成文件传输。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Le`soleil

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值