Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 将Mac Hudson slave连接到Linux master时SSH密钥身份验证失败_Macos_Ssh_Hudson_Master_Slave - Fatal编程技术网

Macos 将Mac Hudson slave连接到Linux master时SSH密钥身份验证失败

Macos 将Mac Hudson slave连接到Linux master时SSH密钥身份验证失败,macos,ssh,hudson,master,slave,Macos,Ssh,Hudson,Master,Slave,好的,我让Hudson(v1.393)在Ubuntu虚拟机上运行,一切正常。 然而,我正试图在Ubuntu主机上添加一个Mac从机,我遇到了一些问题 我已经设置了SSH密钥,这样ubuntuvm可以从命令行使用该密钥SSH到Mac上一个名为hudson的用户 在Hudson slave配置中,我选择了“通过SSH在Unix机器上启动slave Agent”,并输入了主机IP、slave上用户的用户名以及我的私钥文件在master上的位置(已添加到slave上的授权密钥文件中) 但是,主设备无法连

好的,我让Hudson(v1.393)在Ubuntu虚拟机上运行,一切正常。 然而,我正试图在Ubuntu主机上添加一个Mac从机,我遇到了一些问题

我已经设置了SSH密钥,这样ubuntuvm可以从命令行使用该密钥SSH到Mac上一个名为hudson的用户

在Hudson slave配置中,我选择了“通过SSH在Unix机器上启动slave Agent”,并输入了主机IP、slave上用户的用户名以及我的私钥文件在master上的位置(已添加到slave上的授权密钥文件中)

但是,主设备无法连接到从设备。 查看下面的日志,它正在尝试使用密码进行身份验证

这是失败的基于密钥的SSH尝试的回退吗?
Hudson是否仅尝试使用密码进行身份验证,而我需要更改其他内容以使其使用配置中定义的密钥文件?
难道不能在mac上通过ssh启动从属代理吗?(我知道这种类型的slave-launch方法的名称,但我认为(阅读:希望)它也适用于OS X)

日志

[01/14/11 10:38:07] [SSH] Opening SSH connection to 10.0.1.188:22.
[01/14/11 10:38:07] [SSH] Authenticating as hudson/******.
java.io.IOException: Password authentication failed.
at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:319)
at com.trilead.ssh2.Connection.authenticateWithPassword(Connection.java:314)
at hudson.plugins.sshslaves.SSHLauncher.openConnection(SSHLauncher.java:565)
at hudson.plugins.sshslaves.SSHLauncher.launch(SSHLauncher.java:179)
at hudson.slaves.SlaveComputer$1.call(SlaveComputer.java:184)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:636)
Caused by: java.io.IOException: Authentication method password not supported by the server at this stage.
at com.trilead.ssh2.auth.AuthenticationManager.authenticatePassword(AuthenticationManager.java:289)
... 9 more
[01/14/11 10:38:07] [SSH] Connection closed.
如果有人曾经成功地克服过这种设置,或者有任何提示或想法,我将非常感激!
谢谢

检查Ubuntu机器上的/var/log/auth.log文件。我打赌您需要chmod 700 hudson用户的.ssh目录。

我最近遇到了同样的问题,试图使用ssh在Mac OS X 10.6机器上启动代理

要使密码验证生效,您需要在客户端节点上编辑/etc/sshd\u config,设置
PasswordAuthentication yes

在Hudson仪表板中,使节点脱机,确保配置具有有效的用户名和密码,然后启动代理。还要确保远程FS根目录由您连接的生成用户所有

对于无密码ssh身份验证,首先检查Hudson master运行的用户。假设这是tomcat55。生成公共/私有SSH密钥对(使用空密码),然后验证Hudson用户是否可以连接

$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/tomcat55/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/tomcat55/.ssh/id_rsa.
Your public key has been saved in /home/tomcat55/.ssh/id_rsa.pub.

$ # authorize the hudson master on the hudson node
$ scp /home/tomcat55/.ssh/id_rsa.pub hudson@macnode:~/.ssh/authorized_keys
$ # test the connection
$ ssh -i /home/tomcat55/.ssh/id_rsa hudson@macnode
在Hudson mac节点上,/etc/sshd_配置需要允许无密码访问

Protocol 2
PubkeyAuthentication yes
在节点配置中,清除密码字段,并设置私钥字段(在本例中为/home/tomcat55/.ssh/id_rsa)。您现在应该能够启动代理:

[01/19/11 22:38:44] [SSH] Opening SSH connection to macnode:22.
[01/19/11 22:38:44] [SSH] Authenticating as hudson with /home/tomcat55/.ssh/id_rsa.
[01/19/11 22:38:45] [SSH] Authentication successful.
我认为第一个答案(选择的答案)是一个很棒的答案,但我确实发现了一个案例,它不是唯一的解决方案

在我的例子中,我有一个正在工作的Mac OS奴隶,然后我把那个Mac拿下来,拿出一个新的。我想我可以调整现有节点配置的设置,使其指向新的Mac。它不起作用,我在整个消息线程中都遇到了相同的错误和问题


然后我进入并删除了节点,并用完全相同的设置重新创建了它,它成功了。我怀疑SSH密钥指纹已更改,通过删除节点并重新创建它,我能够使其正常工作。不管是什么,导致它失败的关键组件不是配置选项。

您是否尝试过不使用私钥和密码?查看它是否使用该方法连接..您是否尝试过使用jsut ssh从VM连接到OSX框,以查看是否启用了密钥验证?OSXbox是服务器版还是客户端版?您在生成密钥时是否将密码留空?@Sagar:只是尝试使用密码而不是密钥。运气不好,日志中有相同的消息。@prodigitalson:ssh从Ubuntu虚拟机上的命令行到Mac运行正常。我最初在ssh密钥上有一个密码,但后来我创建了一个没有密码的新密钥,因为我认为这可能是问题所在。OSX机器不是服务器版本,只是标准的OSX10.6.6。刚刚尝试过删除该文件,权限现在是“-rwx------”。还是不走运,谢谢罗南!密码验证工作正常。但是,如果我删除密码并依赖ssh密钥,它仍然会失败,Hudson似乎仍然依赖密码-“[01/02/11 13:11:45][ssh]验证为mattbilson/*******”。在我的sshd_配置中是否还有其他内容?我有“RSAAuthentication yes”、“PubkeyAuthentication yes”、“AuthorizedKeysFile.ssh/authorized_keys”如果ssh插件不能使用私钥登录节点,它会返回密码。当你试图弄清楚事情的时候,我会把password字段留空,以确保让它进入的不是PasswordAuthentication。另外,正在发生的是ssh-i密钥文件USER@HOST . 如果您可以作为hudson用户手动执行此操作,那么hudson也应该能够执行此操作。您是否能够su到hudson用户,然后从命令行尝试ssh?如果有什么问题,你很可能会这样发现。就是这样!Hudson在Hudson用户上运行,但我在ubuntu机器上是另一个用户。hudson没有权限访问我的密钥文件。现在我为哈德逊用户创建了一个密钥,并将其添加到Mac中。事实证明这是一个非常简单的错误。谢谢你告诉我哈德逊到底在做什么,罗南@RonenBotzer:有同样的问题,请看一下。问题贴出。@mattbilson:有同样的问题,请看一看,