web-dev-qa-db-ja.com

dropbear / initramfsを使用して暗号化されたubuntuサーバー15.04をリモートでsshでロック解除できない

そこで、完全なディスク暗号化とリモートロック解除機能を備えた、新しいUbuntu 15.04ヘッドレスサーバーをセットアップしようとしています。 Raspbian-Wheezyと別のヘッドレスUbuntu 14.04サーバーを実行しているRaspberry Piでこれを正常に実行しました。

成功した試行とこの最後の失敗した試行の両方について、 このガイド の指示に従っています。

Dropbear/busyboxをインストールします。

Sudo apt-get install busybox dropbear

生成されたsshキーをクライアントにコピーします。

Sudo cp /etc/initramfs-tools/root/.ssh/id_rsa ~/id_rsa_dropbear
Sudo scp ~/id_rsa_dropbear client@client:~/.ssh/id_rsa_dropbear

私のクライアントはcygwinを実行しているWindowsクライアントなので、新しいキーのアクセス許可を変更します。

chgrp Users ~/.ssh/id_rsa_dropbear
chmod 600 ~/.ssh/id_rsa_dropbear

Dropbearは、キー生成時に自動的に公開キーをauthorized_keysファイルに追加します。上記のリンクに記載されているようにcrypt_unlock.shスクリプトを作成し、実行可能にしました:

Sudo vi /etc/initramfs-tools/hooks/crypt_unlock.sh
Sudo chmod +x /etc/initramfs-tools/hooks/crypt_unlock.sh

Initramfsを更新します。

Sudo initramfs-update -u

サーバーを再起動して、root @ serveripをSSHしようとすると、キーパスフレーズと、rootユーザーのパスワードが要求されます。このキーにはパスフレーズがありません。dropbearは暗号化キーをサポートしていないと思いますか?起こるべきことは、キーが認識され、busyboxプロンプトが表示され、「ロック解除」と入力し、暗号化パスフレーズを入力してサーバー上のルートディスクのロックを解除することです。

暗号化パスフレーズをローカルに入力できます(サーバーがキーボード/モニターに直接接続されている場合)。サーバーは正しく起動します。私が理解できないのは、dropbearが秘密鍵でNiceをプレイしていない理由です。 cryptsetup readmeの指示を複数回使用して、秘密/公開鍵を手動で再作成することさえ試みました。 Dropbearはinitramfsで正常に起動します。ローカルパスフレーズプロンプトで確認できます。

誰か提案があれば、大歓迎です。私が言ったように、私は本当に困惑している、私はこれまでゼロの問題でこれを二度やってきた。 15.04の問題の可能性があるかどうか検索してみましたが、何も見つかりませんでした。

編集:

Ssh -vv root @ serveripの出力:

    $ ssh -vv alphabot_dropbear
OpenSSH_6.7p1, OpenSSL 1.0.1j 15 Oct 2014
debug1: Reading configuration data /home/Pete/.ssh/config
debug1: /home/Pete/.ssh/config line 2: Applying options for alphabot_dropbear
debug1: Hostname has changed; re-reading configuration
debug1: Reading configuration data /home/Pete/.ssh/config
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.82.125 [192.168.82.125] port 22.
debug1: Connection established.
debug1: read_keyfile_line: /home/Pete/.ssh/id_rsa_dropbear line 3 exceeds size limit
debug1: read_keyfile_line: /home/Pete/.ssh/id_rsa_dropbear line 3 exceeds size limit
debug1: key_load_public: No such file or directory
debug1: identity file /home/Pete/.ssh/id_rsa_dropbear type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/Pete/.ssh/id_rsa_dropbear-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.7
debug1: Remote protocol version 2.0, remote software version dropbear_2014.65
debug1: no match: dropbear_2014.65
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: [email protected],ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: [email protected],[email protected],ssh-rsa,[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],[email protected],arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: aes128-ctr,aes192-ctr,aes256-ctr,[email protected],[email protected],[email protected],arcfour256,arcfour128,aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,aes256-cbc,arcfour,[email protected]
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1,[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],hmac-sha2-256,hmac-sha2-512,hmac-sha1,[email protected],[email protected],[email protected],[email protected],hmac-md5,hmac-ripemd160,[email protected],hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit: none,[email protected],zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: [email protected],ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,[email protected]
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-ctr,3des-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc
debug2: kex_parse_kexinit: aes128-ctr,3des-ctr,aes256-ctr,aes128-cbc,3des-cbc,aes256-cbc,twofish256-cbc,twofish-cbc,twofish128-cbc
debug2: kex_parse_kexinit: hmac-sha2-256,hmac-sha2-512,hmac-sha1-96,hmac-sha1,hmac-md5
debug2: kex_parse_kexinit: hmac-sha2-256,hmac-sha2-512,hmac-sha1-96,hmac-sha1,hmac-md5
debug2: kex_parse_kexinit: zlib,[email protected],none
debug2: kex_parse_kexinit: zlib,[email protected],none
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: setup hmac-sha2-256
debug1: kex: server->client aes128-ctr hmac-sha2-256 none
debug2: mac_setup: setup hmac-sha2-256
debug1: kex: client->server aes128-ctr hmac-sha2-256 none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server Host key: RSA ea:e6:df:5a:82:d6:db:20:3e:c9:5b:93:ad:f5:3b:3a
debug1: Host '192.168.82.125' is known and matches the RSA Host key.
debug1: Found key in /home/Pete/.ssh/known_hosts.initramfs:1
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/Pete/.ssh/id_rsa_dropbear (0x0), explicit
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/Pete/.ssh/id_rsa_dropbear
debug1: key_load_private_type: incorrect passphrase supplied to decrypt private key
Enter passphrase for key '/home/Pete/.ssh/id_rsa_dropbear':
debug2: no passphrase given, try next key
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
[email protected]'s password:
3
Pete Buonomo

私は問題が何であったか本当にわかりません。別の動作確認済みのdropbear id_rsaキーを使用してみましたが、それでも動作しませんでした。最終的に、新しい15.04を完全に再インストールし、すべての手順を再度実行したところ、問題なくリモートでロック解除できました。

3
Pete Buonomo

私はちょうど同じ問題に遭遇しました。起こったのは、キーが古い形式で保存されていたことです:

cat /etc/ssh/ssh_Host_rsa_key
SSH PRIVATE KEY FILE FORMAT 1.1
<encoded private key here>

ただし、新しいsshdでは、新しいbase64エンコードキーが必要です。

cat /etc/ssh/ssh_Host_rsa_key
-----BEGIN RSA PRIVATE KEY-----
<base64 encoding here>
-----END RSA PRIVATE KEY-----

おそらく、秘密鍵と公開鍵の番号をコピーして、base64に再フォーマットする方法があります。ただし、最も簡単なオプションは、最新のssh-keygenを使用してキーを再生成することです

2
sverasch