2026/4/18 7:28:14
网站建设
项目流程
深圳做网站排名,企业型网站网址,html5网页成品代码,简单网页制作模板这个报错是 权限被拒绝#xff08;Permission denied#xff09;#xff0c;核心原因是 Jenkins 运行用户#xff08;如jenkins#xff09;在通过 SSH/SCP 连接生产服务器时#xff0c;认证失败#xff08;密码错误、SSH 密钥未配置#xff0c;或生产服务器的root用户禁…这个报错是权限被拒绝Permission denied核心原因是 Jenkins 运行用户如jenkins在通过 SSH/SCP 连接生产服务器时认证失败密码错误、SSH 密钥未配置或生产服务器的root用户禁止远程登录。解决步骤按优先级1. 检查生产服务器的root用户是否允许 SSH 登录生产服务器默认可能禁止root用户远程 SSH 登录需先开启登录生产服务器编辑 SSH 配置文件bash运行vi /etc/ssh/sshd_config找到并修改以下配置iniPermitRootLogin yes # 改为yes默认可能是no或prohibit-password PasswordAuthentication yes # 若用密码登录需开启默认可能是no重启 SSH 服务bash运行systemctl restart sshd2. 配置 SSH 免密登录推荐避免密码错误手动在 Jenkins 服务器上配置jenkins用户到生产服务器的SSH 免密登录在 Jenkins 服务器上切换到jenkins用户bash运行su - jenkins生成 SSH 密钥对一路回车不设密码bash运行ssh-keygen -t rsa将公钥复制到生产服务器的root用户目录bash运行ssh-copy-id root生产服务器IP执行时会提示输入生产服务器的root密码输入后公钥会自动写入/root/.ssh/authorized_keys。测试免密登录bash运行ssh root生产服务器IP若无需输入密码直接登录则免密配置成功。3. 若必须用密码登录在 SCP 命令中显式指定密码不推荐如果无法配置免密可借助sshpass工具在 SCP 命令中传递密码需先安装sshpass在 Jenkins 服务器安装sshpassbash运行# CentOS/RHEL yum install -y sshpass # Ubuntu/Debian apt-get install -y sshpass修改 SCP 命令添加密码参数bash运行sshpass -p 生产服务器root密码 scp ${jenkins_jar_path} root${prod_server_ip}:${prod_jar_path}4. 检查生产服务器目标目录的权限确保生产服务器上的${prod_jar_path}目录如/opt/app有root用户的写入权限bash运行# 在生产服务器执行 chmod 755 /opt/app # 确保目录可写关键总结核心问题是Jenkins 用户到生产服务器的 SSH 认证失败优先配置SSH 免密登录安全且自动化友好若用密码登录需确保生产服务器开启root远程登录和密码认证最后检查目标目录权限避免上传后无法写入。执行上述步骤后重新构建即可解决Permission denied的问题。