Jenkins从Windows服务器到Linux服务器的SSH

Jenkins从Windows服务器到Linux服务器的SSH,jenkins,jenkins-pipeline,jenkins-plugins,Jenkins,Jenkins Pipeline,Jenkins Plugins,如何建立从Jenkins Build Server(Windows)到Linux机器的连接,并在Linux机器上执行shell脚本。请告诉我如何实现。1)使用SSH无密码登录:实现这一点的一种方法是首先在Windows计算机上安装。这还将安装几个助手实用程序,包括scp和ssh。一旦这些都准备好了,您就可以简单地按照说明进行操作 粘贴上面链接中的代码片段以供参考 stage('SCP JAR file') { steps { bat '"c:\\Program Files

如何建立从Jenkins Build Server(Windows)到Linux机器的连接,并在Linux机器上执行shell脚本。请告诉我如何实现。

1)使用SSH无密码登录:实现这一点的一种方法是首先在Windows计算机上安装。这还将安装几个助手实用程序,包括
scp
ssh
。一旦这些都准备好了,您就可以简单地按照说明进行操作

粘贴上面链接中的代码片段以供参考

stage('SCP JAR file') {
    steps {
        bat '"c:\\Program Files\\git\\usr\\bin\\ssh.exe" -i "c:\\Users\\tom\\.ssh\\azure\\id_rsa" tom@xy.xyz.xy.xz ls -ltr'
    }
}

2) 使用密码身份验证:使用SSH是首选做法。但是,出于任何原因,如果不可行,可以使用密码身份验证进行连接。遵循以下步骤:

a) 在Linux实例上的
/etc/ssh/sshd\u config
文件中将
密码验证否更改为
密码验证是。重新启动
sshd
服务。为要连接的用户设置密码。对其使用
passwd
命令。下面链接中提到的所有步骤

b) 您可以使用
PuTTY
使用密码进行连接。请参阅此链接:

上面的链接解释了如何使用文件(包含命令)选项,还指定了如何使用
PuTTY
Remote command
框运行单个命令,该框位于
SSH
部分。在下图中,如果我使用用户
ubuntu
连接,它将在
/home/ubuntu
下创建一个目录
abc
,然后PuTTY将立即退出

使用命令文件选项:
putty.exe-sshuser@192.168.1.1-pw password-m C:\local\file\包含\u命令


3) 使用
plink
:您可以从

如果要运行多个命令,请创建一个包含所有命令的文件。比如说,

cmds.txt的内容

hostname
touch file
ls -ltr
命令:

c:\test>plink -ssh centos@xx.xyz.xxy.xyz -pw centos -m cmds.txt
输出:

注意:如果您注意到第一个命令运行而第二个命令不运行,请尝试将命令文件的格式更改为:

first_cmd ; second_cmd

另外,不要忘记在最后一个命令后按
Enter
。您的文件应如下所示:


您尝试过这个建议吗?对于我们的环境,不应生成SSH密钥。还有其他方法吗?检查更新的回答谢谢你的建议我已经在命令提示符下执行了上面的命令,可以使用putty,但它需要再次使用密码。当我执行putty.exe-ssh时user@192.168.1.1-pw password命令后,我可以使用选项-m登录它不工作我使用了第一个(不带
-m
选项)这对我也很有效。在这种情况下,PuTTY会提示您输入密码。我们必须检查
-m
选项,尽管它为什么不适用于您。您会遇到什么错误?您能粘贴完整的命令吗?我刚刚尝试使用plink选项,它对我plink.exe-ssh有效user@192.168.1.1-pw密码-m C:\local\file\containing_命令。但现在唯一的问题是在“containing_命令”中提供命令后,我的第一个命令成功运行,但第二个命令未运行。是否需要在文件中提供任何语法感谢它正在使用提供的步骤。
first_cmd
second_cmd