Jenkins作业失败,无法对远程执行scp,权限被拒绝(公钥,密码)



我几乎不需要帮助。在我的Jenkinsfile中,我有一个要执行shell的阶段:

sh";sudo scp/home/boris2/webgoat-server-v8.1.0.jarboris3@10.113.80.109:/home/boris3";

但是jenkins作业失败,输出:权限被拒绝(公钥,密码)

我可以通过ssh连接到远程,也可以通过终端执行scp命令。我尝试了很多解决方案,但都找不到合适的。

有人能帮忙吗?

当我尝试scp-v时,我有这样的输出:

OpenSSH_8.2p1 Ubuntu-4ubuntu0.2,OpenSSL 1.1.1f,2020年3月31日debug1:读取配置数据/etc/ssh/ssh_configdebug1:/etc/ssh/ssh_config第19行:include/etc/ssh/ssh_config.d/.conf没有匹配任何文件debug1:/etc/ssh/ssh_config第21行:应用*debug1:连接到10.113.80.109[10.113.80.109]端口22。debug1:已建立连接。debug1:标识文件/root/.ssh/id_rssa类型-1debug1:标识文件/root/.ssh/id_rsa-crt-type-1debug1:标识文件/root/.ssh/id_dsa类型-1debug1:标识文件/root/.ssh/id_dsa-crt-type-1debug1:标识文件/root/.ssh/id_ecdsa类型-1debug1:标识文件/root/.ssh/id_ecdsa-crt-type-1debug1:标识文件/root/.ssh/id_ecdsa_sk type-1debug1:标识文件/root/.ssh/id_ecdsa_sk-cert-type-1debug1:标识文件/root/.ssh/id_ed25519类型-1debug1:标识文件/root/.ssh/id_ed25519-cert-type-1debug1:标识文件/root/.ssh/id_ed25519_sk类型-1debug1:标识文件/root/.ssh/id_ed25519_sk-cert-type-1debug1:标识文件/root/.ssh/id_xmss类型-1debug1:标识文件/root/.ssh/id_xms-cert类型-1debug1:本地版本字符串SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.2debug1:远程协议版本2.0,远程软件版本OpenSSH_8.2p1 Ubuntu-4ubuntu0.2debug1:match:OpenSSH_8.2p1 Ubuntu-4ubuntu0.2 pat OpenSSHcompat 0x04000000debug1:身份验证到10.113.80.109:22为"boris3"debug1:SSH2_MSG_KEXINIT已发送debug1:SSH2_MSG_KEXINIT已接收debug1:kex:算法:曲线25519-sha256debug1:kex:host密钥算法:ecdsa-sha2-nistp256debug1:kex:server->客户端密码:chacha20-poly1305@openssh.comMAC:压缩:无debug1:kex:client->服务器密码:chacha20-poly1305@openssh.comMAC:压缩:无debug1:应为SSH2_MSG_KEX_ECDH_REPLYdebug1:服务器主机密钥:ecdsa-sha2-nistp256 SHA256:Sr+ta5yB6J7Kz9FlJoZBy/W3jb0hBeZv4BHcJuDvsE8debug1:主机"10.113.80.109"是已知的,并且与ECDSA主机密钥匹配。debug1:在/root/.ssh/nknown_hosts:2中找到密钥debug1:在134217728个块之后重新密钥debug1:SSH2_MSG_NEWKEYS已发送debug1:应为SSH2_MSG_NEWKEYSdebug1:SSH2_MSG_NEWKEYS已接收debug1:在134217728个块之后重新键入debug1:将尝试密钥:/root/.ssh/id_rssadebug1:将尝试密钥:/root/.ssh/id_dsadebug1:将尝试密钥:/root/.ssh/id_ecdsadebug1:将尝试密钥:/root/.ssh/id_ecdsa_skdebug1:将尝试密钥:/root/.ssh/id_ed25519debug1:将尝试密钥:/root/.ssh/id_ed25519_skdebug1:将尝试密钥:/root/.ssh/id_xmssdebug1:SSH2_MSG_EXT_INFO已接收debug1:kex_input_ext_info:服务器sig-algs=<ssh-ed25519,sk-ssh-ed25519@openssh.com,ssh-rsa,rsa-sha2-256,rsa-sa2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-1ha2-nistp384,ecdsa-sha2-nistpa21,sk-ecdsa-sha2-nistp256@openssh.com>debug1:收到SSH2_MSG_SERVICE_ACCEPTdebug1:可以继续的身份验证:公钥、密码debug1:下一个身份验证方法:公钥debug1:正在尝试私钥:/root/.ssh/id_rsadebug1:正在尝试私钥:/root/.ssh/id_dsadebug1:正在尝试私钥:/root/.ssh/id_ecdsadebug1:正在尝试私钥:/root/.ssh/id_ecdsa_skdebug1:正在尝试私钥:/root/.ssh/id_ed25519debug1:正在尝试私钥:/root/.ssh/id_ed25519_skdebug1:正在尝试私钥:/root/.ssh/id_xmssdebug1:下一个身份验证方法:密码debug1:read_passphrase:无法打开/dev/tty:没有这样的设备或地址debug1:可以继续的身份验证:公钥、密码权限被拒绝,请重试。debug1:read_passphrase:无法打开/dev/tty:没有这样的设备或地址debug1:可以继续的身份验证:公钥、密码权限被拒绝,请重试。debug1:read_passphrase:无法打开/dev/tty:没有这样的设备或地址debug1:可以继续的身份验证:公钥、密码debug1:不再尝试身份验证方法。boris3@10.113.80.109:权限被拒绝(公钥、密码)。

您可以尝试scp-v查看哪些ssh密钥用于通信
如果您能够连接到远程机器(如您所说),但不能作为jenkins用户连接,请确保$jenkins_HOME目录包含.ssh/,该目录具有与远程机器通信所需的特定ssh密钥。

此外,我不认为sudo是scp工作所必需的。

最新更新