jenkins通过sshPut传输文件时报错Permission denied的SftpException的问题及解决方案

 更新时间:2023年08月02日 10:20:09   作者:天草二十六_简村人  
使用jenkins的ssh插件传输文件至远程机器的指定目录,php程序打包后,经过zip压缩为oms.zip,这篇文章主要介绍了jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException,需要的朋友可以参考下

一、背景

使用jenkins的ssh插件传输文件至远程机器的指定目录,php程序打包后,经过zip压缩为oms.zip

zip -rq oms.zip ./ -x '.git/*' -x .env

然后我们求md5值

md5sum oms.zip

最后执行传输。

09:03:02  Executing command on ssh[116.61.10.149]: mkdir -p /opt/php/oms sudo: false
[Pipeline] sshPut
[Pipeline] }
09:03:07  Sending a file/directory to ssh[116.61.10.149]: from: /home/jenkins/agent/workspace/PROD_resource_php_oms/oms.zip into: /opt/php/oms
09:03:08  Failed SFTP PUT: /home/jenkins/agent/workspace/PROD_resource_php_oms/oms.zip -> ssh:/opt/php/oms

二、报错详情

Caused: org.hidetake.groovy.ssh.operation.SftpException: Failed SFTP PUT: /home/jenkins/agent/workspace/PROD_resource_php_oms/oms.zip -> ssh:/opt/php/oms: (SSH_FX_PERMISSION_DENIED: The user does not have sufficient permissions to perform the operation): Permission denied

三、ssh pipeline

    def remote = [:]
    remote.name = 'ssh'
    remote.host = '116.61.10.149'
    remote.port = 22
    remote.allowAnyHosts = true
    def credentialsId = "285a0928-f35f-4485-a54f-48321aea7212"
withCredentials([sshUserPrivateKey(credentialsId: credentialsId, keyFileVariable: 'identity', passphraseVariable: '')]) {
        remote.user = 'phpuser'
        remote.identityFile = identity
        // 创建远程目录
        sshCommand remote: remote, command: "mkdir -p " + remoteFilePath
       // 上传jar或者zip包,以及md5文件
        sshPut remote: remote, from: jarFileName, into: remoteFilePath
        sshPut remote: remote, from: md5FileName, into: remoteFilePath
        // 如果是zip压缩文件,额外上传一个.version文件,内容是版本号
        if (".zip" == fileType) {
            sshPut remote: remote, from: ".version", into: remoteFilePath
        }
    }

四、排查过程

手动登录远程机器116.61.10.149,然后进入目标目录,查看目录所属的用户是root,而非phpuser,所以报没有权限的错误。

[root@TEST-jekines ~]# ssh phpuser@116.61.10.149
Last login: Thu Jul 28 09:52:44 2022 from 116.61.10.149
Welcome to Alibaba Cloud Elastic Compute Service !
[phpuser@awx-pre ~]$ cd /opt/php
[phpuser@awx-pre php]$ ll
total 15
drwxr-xr-x 2 root root 4096 Jul 25 09:51 oms

查看文件夹的详情

[phpuser@awx-pre php]$ stat oms
  File: ‘oms'
  Size: 4096            Blocks: 1          IO Block: 16384  directory
Device: 56h/86d Inode: 6993897     Links: 2
Access: (0755/drwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2023-07-25 09:51:29.613946996 +0800
Modify: 2023-07-25 09:51:29.613946996 +0800
Change: 2023-07-25 09:51:29.613946996 +0800
 Birth: -

文件夹oms是在2023-07-25 09:51:29由用户root创建的,所以当phpuser用户来尝试创建目录的时候,会失败,继而传输文件也报权限非法的错误。

五、解决问题

rm -rf /opt/php
  • 删除后,目录/opt/php下为空
  • 重试上传文件
[phpuser@awx-pre oms]$ ll -h
total 170M
-rw-rw-r-- 1 phpuser phpuser 170M Jul 31 10:06 oms.zip
-rw-rw-r-- 1 phpuser phpuser   33 Jul 31 10:06 oms.zip.md5

到此这篇关于jenkins通过sshPut传输文件的时候,报错Permission denied的SftpException的文章就介绍到这了,更多相关jenkins通过sshPut传输文件报错内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • VS2019 自定义项目模板的实现方法

    VS2019 自定义项目模板的实现方法

    这篇文章主要介绍了VS2019 自定义项目模板的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • 万万没想到Chrome的历史记录竟然可以这么玩

    万万没想到Chrome的历史记录竟然可以这么玩

    最近遇到一个棘手的问题,需要查找含有某个关键字的网页,但是通过chrome原生的历史记录查出来的,查到的结果并不满意,今天小编就给大家分享一篇教程帮助大家解决Chrome历史记录的问题,感兴趣的朋友一起看看吧
    2020-10-10
  • 深入剖析网关gateway原理

    深入剖析网关gateway原理

    这篇文章主要介绍了网关gateway,本文从网关的背景开始讲起,一次论述网关的依赖,负载均衡,网关的选型等等进行深入的剖细,让大家可以更深一步的了解
    2021-08-08
  • 程序员的八种境界,你在哪一境?

    程序员的八种境界,你在哪一境?

    这篇文章主要介绍了程序员的八种境界,你在哪一境?本文同时探讨了为什么中国的程序员总被称为码农的原因,需要的朋友可以参考下
    2014-09-09
  • Elasticsearch在应用中常见错误示例解析

    Elasticsearch在应用中常见错误示例解析

    这篇文章主要为大家介绍了Elasticsearch在应用中常见错误示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • Xmind8 Pro 最新激活序列号

    Xmind8 Pro 最新激活序列号

    最近需要打开文件后缀名为.xmind的文件,所以下载了Xmind8 。打开以后想要导出,奈何普通版本只能导出.txt文本文档,所以就总结出了这篇文章,对Xmind8 Pro破解方法感兴趣的朋友跟随小编一起看看吧
    2021-05-05
  • 火车头采集正文多图片如何采集下载(只下载一张图片的情况该如何处理)

    火车头采集正文多图片如何采集下载(只下载一张图片的情况该如何处理)

    文章采集是站长常常会遇到的事,很多人使用火车头采集器软件,采集正文中有多个图片的时候如果设置错误,会遇到只下载一张图片、采集后的正文多张图片同一个文件名的情况
    2023-03-03
  • 在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

    在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

    在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行DeepSeek以及使用LMStudio选项,本文介绍在 Windows 上安装 DeepSeek 的完整指南,感兴趣的朋友一起看看吧
    2025-02-02
  • 如果你有这33种症状了请离开电脑去走走吧!

    如果你有这33种症状了请离开电脑去走走吧!

    这篇文章主要介绍了如果你有这33种症状了请离开电脑去走走吧!本文是关注程序员、上班族身心健康的文章,需要的朋友可以参考下
    2014-09-09
  • 一文教你如何本地部署DeepSeek

    一文教你如何本地部署DeepSeek

    这篇文章主要为大家详细了如何实现本地部署DeepSeek,文中通过示例代码和图片进行了详细的介绍,具有一定的借鉴价值,希望对大家有所帮助
    2025-02-02

最新评论