2011-01-17 18 views
7

私はHudson(v1.393)をUbuntu VMで稼働させています。 しかし、私はMacのスレーブをUbuntuマスターに追加しようとしています。私はいくつかの問題を抱えています。Mac HudsonスレーブをLinuxマスターに接続するときにSSH鍵認証が失敗する

私はコマンドラインから、Ubuntu VMがMacでhudsonというユーザーにキーを使ってsshできるようにSSHキーを設定しました。

ハドソンのスレーブ設定では、「SSH経由でUnixマシンにスレーブエージェントを起動する」が選択されており、ホストIP、スレーブ上のユーザのユーザ名、およびマスター上の自分の秘密鍵ファイルの場所スレーブ上の認証済みキーファイルに追加されています)。

ただし、マスターはスレーブに接続できません。 ログ(以下)を見ると、パスワードを使用して認証しようとしています。

これは、失敗したキーベースのSSH試行のためのフォールバックですか?
ハドソンはパスワードを使って認証しようとしていますか?設定で定義されているキーファイルを使用するには何かを変更する必要がありますか?
Mac上でssh経由でスレーブエージェントを起動することはできませんか?誰場合

[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. 

ログイン

:(それはあまりにもOS Xで動作することを期待して)私は、スレーブの起動方法のこのタイプの名前が明示的にUnixのを述べたが、私は(読み考えていた知っています)前にこのタイプの設定を征服することができた、またはヒントやアイデアがあれば、私は非常に感謝しています! ありがとう

+1

秘密鍵なしでパスワードを試しましたか?そのメソッドを使用して接続するかどうかを確認してください。 – Sagar

+0

jsut sshを使用してVMからOS Xボックスに接続しようとしましたが、キー認証が有効になっていますか? OS Xボックスのサーバまたはクライアントのバージョンはありますか?キーを生成したときにパスワードを空白のままにしましたか? – prodigitalson

+0

@Sagar:キーではなくパスワードを使用してみました。ログには何のメッセージもありません。 – mattbilson

答えて

16

私は最近、SSHを使用してMac OS X 10.6マシンでエージェントを起動しようとしている同じ問題に遭遇しました。

は、ノードをオフラインハドソンダッシュボードではPasswordAuthentication yes

を設定し、クライアント・ノードの/ etc/sshd_configファイルを編集する必要があります動作するようにパスワード認証を取得した構成が有効なユーザー名とパスワードを持っていることを確認するために、 、エージェントを起動します。 リモート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 [email protected]:~/.ssh/authorized_keys 
$ # test the connection 
$ ssh -i /home/tomcat55/.ssh/id_rsa [email protected] 

ハドソンの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. 
+0

ありがとうRonen!パスワード認証は正常に動作します。しかし、パスワードを削除してsshキーに頼ると、それでも失敗し、Hudsonは依然としてパスワードに頼っているようです - "[01/02/11 13:11:45] [SSH] mattbilsonとして認証//* *****。 "それは私のsshd_configの何か他のですか? "RSAAuthentication yes"、 "PubkeyAuthentication yes"、 "AuthorizedKeysFile .ssh/authorized_keys" – mattbilson

+0

秘密鍵を使用してノードにログインできない場合、SSHプラグインはパスワードに戻ります。私は、パスワードフィールドを空白のままにしておき、パスワードアサーションがそれを許可していないことを確認するために、パスワードを空にしておきます。また、ssh -i KEYFILE USER @ HOSTが起きています。もしあなたが手動で* hudsonユーザーとして*行うことができれば、Hudsonもそうすることができます。あなたはハドソンのユーザーにsuして、コマンドラインからsshを試すことができますか?何か問題がある場合は、この方法で見つけることができます。 –

+0

それだけです! Hudsonはhudsonユーザーで動作しますが、私は別のユーザーとしてubuntuマシンにいます。そして、hudsonには私のキーファイルに対するアクセス権がありませんでした。今、私はhudsonユーザーのためのキーを作成し、それをMacに追加しました。それはかなり単純な間違いであったことが分かります。 hudsonが実際に行っていたことについての情報をありがとうRonen! – mattbilson

2

Ubuntuマシンの/var/log/auth.logファイルを確認してください。私は、あなたがhudsonユーザーの.sshディレクトリをchmod 700する必要があると賭けています。

+0

そのファイルを700-ingしようとすると、パーミッションは "-rwx ------"になります。まだ運がありません。 – mattbilson

1

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

私の場合、Mac OSスレーブが動作していて、そのMacをダウンして新しいものを持ってきました。既存のノードの設定を新しいMacで指すように調整することができたと思った。それはうまくいきませんでした。私はこのメッセージスレッドを通して説明されているのと同じエラーと問題を抱えていました。

次に、ノードに入ってノードを削除し、まったく同じ設定で再作成しました。私は容疑者 SSHキーの指紋が変更され、ノードを削除し、それを再作成することによって、私はそれを働かせることができました。それが何であれ、それを失敗させる主なコンポーネントは構成オプションではありません。

関連する問題