7

さて、Ubuntu VMでHudson(v1.393)を実行していて、すべてが正常に機能しています。しかし、私はMacスレーブをUbuntuマスターに追加しようとしていますが、いくつかの問題が発生しました。

コマンドラインからUbuntuVMがキーを使用してMacのhudsonというユーザーにSSHで接続できるようにSSHキーを設定しました。

ハドソンスレーブ構成では、「SSH経由でUnixマシン上でスレーブエージェントを起動する」を選択し、ホストIP、スレーブ上のユーザーのユーザー名、およびマスター上の秘密鍵ファイルの場所を入力しました(これはスレーブ上の許可されたキーファイル)。

ただし、マスターはスレーブへの接続に失敗します。以下のログを見ると、パスワードを使用して認証しようとしています。

これは、失敗したキーベースのSSH試行のフォールバックですか?
ハドソンはパスワードを使用して認証しようとしているだけですか?構成で定義されているキーファイルを使用するために何か他のものを変更する必要がありますか?
Macでsshを介してスレーブエージェントを起動することはできませんか?(私はこのタイプのスレーブ起動メソッドの名前が明示的にUnixを示していることを知っていますが、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.

誰かが以前にこのタイプのセットアップをなんとか征服したことがあるか、または何かヒントやアイデアがあれば、私は非常に感謝しています!ありがとう

4

3 に答える 3

16

最近、SSHを使用してMac OS X 10.6マシンでエージェントを起動しようとして、同じ問題が発生しました。

パスワード認証を機能させるには、クライアントノードで/ etc/sshd_configを編集して設定する必要があります。PasswordAuthentication yes

ハドソンダッシュボードでノードをオフラインにし、構成に有効なユーザー名とパスワードがあることを確認して、エージェントを起動します。また、リモートFSルートディレクトリが、接続しているビルドユーザーによって所有されていることを確認してください。

パスワードなしのssh認証の場合、最初にHudsonマスターが実行されているユーザーを確認します。これが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_configでパスワードなしのアクセスを許可する必要があります。

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.
于 2011-01-20T04:28:24.753 に答える
2

Ubuntuマシンの/var/log/auth.logファイルを確認してください。ハドソンユーザーの.sshディレクトリをchmod700する必要があると思います。

于 2011-01-17T16:29:33.013 に答える
1

最初の答え(選択したもの)は素晴らしい答えだと思いますが、それが唯一の解決策ではない場合を見つけました。

私の場合、動作していたMac OSスレーブがあり、そのMacを停止して、新しいMacを起動しました。既存のノードの構成の設定を微調整して、新しいMacを指すようにすることができると思いました。それは機能せず、このメッセージスレッド全体で説明されているのと同じエラーと問題がありました。

次に、ノードを削除して、まったく同じ設定で再作成しましたが、機能しました。SSHキーのフィンガープリントが変更されたのではないかと思います。ノードを削除して再作成することで、ノードを機能させることができました。それが何であれ、それを失敗させた主要なコンポーネントは構成オプションではありません。

于 2012-08-14T20:12:50.300 に答える