web-dev-qa-db-ja.com

MAASで使用すると、jujuで無効なSSHキーエラーが発生する

これは、2つのノードがすべて12.04で実行されるクリーンインストールからのjujuの出力ですjuju bootstrap-エラーなしで終了し、ユーザーにマシンを割り当てますが、juju環境を破壊して別のユーザーで再構築すると、まだ喜びがありませんおよび異なるノード。

root@cloudcontrol:/storage# juju -v  status
2012-06-07 11:19:47,602 DEBUG Initializing juju status runtime
2012-06-07 11:19:47,621 INFO Connecting to environment...
2012-06-07 11:19:47,905 DEBUG Connecting to environment using node-386077143930...
2012-06-07 11:19:47,906 DEBUG Spawning SSH process with remote_user="ubuntu" remote_Host="node-386077143930" remote_port="2181" local_port="57004".
The authenticity of Host 'node-386077143930 (10.5.5.113)' can't be established.
ECDSA key fingerprint is 31:94:89:62:69:83:24:23:5f:02:70:53:93:54:b1:c5.
Are you sure you want to continue connecting (yes/no)? yes
2012-06-07 11:19:52,102 ERROR Invalid SSH key
2012-06-07 11:19:52,426:18541(0x7feb13b58700):Zoo_INFO@log_env@658: Client environment:zookeeper.version=zookeeper C client 3.3.5
2012-06-07 11:19:52,426:18541(0x7feb13b58700):Zoo_INFO@log_env@662: Client environment:Host.name=cloudcontrol
2012-06-07 11:19:52,426:18541(0x7feb13b58700):Zoo_INFO@log_env@669: Client environment:os.name=Linux
2012-06-07 11:19:52,426:18541(0x7feb13b58700):Zoo_INFO@log_env@670: Client environment:os.Arch=3.2.0-23-generic
2012-06-07 11:19:52,426:18541(0x7feb13b58700):Zoo_INFO@log_env@671: Client environment:os.version=#36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012
2012-06-07 11:19:52,428:18541(0x7feb13b58700):Zoo_INFO@log_env@679: Client environment:user.name=sysadmin
2012-06-07 11:19:52,428:18541(0x7feb13b58700):Zoo_INFO@log_env@687: Client environment:user.home=/root
2012-06-07 11:19:52,428:18541(0x7feb13b58700):Zoo_INFO@log_env@699: Client environment:user.dir=/storage
2012-06-07 11:19:52,428:18541(0x7feb13b58700):Zoo_INFO@zookeeper_init@727: Initiating client connection, Host=localhost:57004 sessionTimeout=10000 watcher=0x7feb11afc6b0 sessionId=0 sessionPasswd=<null> context=0x2dc7d20 flags=0
2012-06-07 11:19:52,429:18541(0x7feb0e856700):Zoo_ERROR@handle_socket_error_msg@1579: Socket [127.0.0.1:57004] zk retcode=-4, errno=111(Connection refused): server refused to accept the client
2012-06-07 11:19:55,765:18541(0x7feb0e856700):Zoo_ERROR@handle_socket_error_msg@1579: Socket [127.0.0.1:57004] zk retcode=-4, errno=111(Connection refused): server refused to accept the client
  • 私はssh-keygen -t rsa -b 2048、ssh-keygen -t rsa、ssh-keygenでキーを作成する多くの方法を試しましたが、それらをMAAS Web設定ページに追加しようとしましたが、常に同じ結果が得られました。
  • その後、適切な公開鍵を~/.ssh/authorized_keysに追加しました
  • ノードにsshすることもできますが、ユーザー名またはパスワードの入力やアカウントのセットアップを求められていないため、ノードに手動でsshすることはできません。ノードのセットアップはすべてmaasサーバーによって処理されます。間違ったキーを見たり、間違った場所を見たりするという単純なエラーのように見えますが、私が見つけることができる他の提案は、環境を破壊して再構築することです(しかし、今では何度も動作しませんでした)またはインスタンスを構築するためにそれを残すノードに電源が投入されたら、数時間放置してから、一晩放置して、運よく構築します。
4
Captain T

私が思いついた解決策は、新しくブートされたノードにパスワードを設定し、次にそれぞれにSSHキーを手動で挿入することです。 ubuntuユーザーのブートパスワードを設定するには、/ var/lib/cobbler/kickstarts/maas.preseedに次の行が含まれていることを確認します。

d-i    passwd/make-user boolean true
d-i    passwd/user-fullname ubuntu
d-i    passwd/username string ubuntu
d-i    passwd/user-password-crypted password <CRYPTED PASSWORD>

これが完了すると、ubuntu @をsshし、暗号化されたパスワード文字列で指定されたパスワードを使用できます(最も簡単な方法は、既に知っている/ etc/shadowファイルからパスワードを使用することです)。 〜ubuntu/.ssh/authorized_keysおよび〜root/.ssh/authorizedキーの下。

これは回避策であることに注意してください。ssh-keygenを実行すると、MaaSは.sshディレクトリから、またはユーザーが自分のプロファイルで公開キーを指定できるMaaS WebUIからid_rsa.pubをプルする必要があります。試したことに関係なく、これらのキーは伝達されないため、回避策を思い付きました。

さらにカンニングは、Mpubノードの.ssh/authorized_keysに.pubキーを追加し、MaaSの各ノードにそれをscpするだけです:

for i in `cobbler system list |grep -v default`; 
    do j=`cobbler system dumpvars --name "${i}" | grep hostname |grep -v duplicate |cut -f 2 -d \:`; 
    scp ~/.ssh/authorized_keys ubuntu@${j}:.ssh/authorized_keys;
done

これにより、SSH証明書エラーを繰り返し受け入れ、暗号化された文字列にパスワードを入力するだけで、MaaS全体にSSH公開キーを入力できます。

2
cheez0r

あなたがjujuを使用しているのと同じホスト上でSSHキーを生成していることを確認し、そのマシン上のSSHキーの公開半分をMAASに追加します(すべてを見つけるにはls ~/.ssh/*.pubを試してください) )。手動でキーを~/.ssh/authorized_keysに配置する必要はありません。

Jujuを始めよう ガイドは、それを見たことがない場合に役立つかもしれません。

2
Gavin Panella

私は同じ問題に直面しています。二日前に私は答えを探し始めました、そして私が見つけた最も重要なことはこれです:

「juju status」を実行すると、「Invalid SSH key」というエラーが発生する場合があります

このエラーの最も可能性の高い原因は、jujuが起動したノードがまだ起動とインストールを完了していないことです。これは、ノードのクロックがOAuth検証のために同期しすぎているために発生する可能性があり、メタデータサービスからダウンロードしようとしたときにノードがタイムアウトし、最終的にログインで起動を続けます。 Juju preseedを実行せずにプロンプ​​トを表示します。

ノードのクロックを確認し、MAASサーバーのクロックと大きく異なる場合はリセットしてください。

https://answers.launchpad.net/maas/+faq/1979

これは本当にこの問題を解決しました。 MAASサーバーでntpdateを実行し、新しいノードをインストールしました。

1
guimaluf

ブートストラップ後にノードをインストールするための十分な時間を確保してください。 Ubuntuのインストールが完了するまでに数十分かかる場合があります。エラーメッセージは、jujuがまだsshdを実行していないマシンに接続しようとしていることを示しているように見えます。これは、インストーラーがおそらくまだ実行中であることを示しています。

0
Gavin Panella