Невозможно подключиться к SSH-серверу dropbear для удаленной разблокировки зашифрованного корневого раздела LUKS на облачном сервере Arch Linux.

Я намеревался установить зашифрованную Linux-систему LUKS Arch на облачном сервере. Я установил последнюю версию Arch Linux в зашифрованный LUKS раздел, настроил initramfs (установленные перехватчики сборки), затем установил загрузчик grub и настроил его для расшифровки cryptroot. Я использовал это руководство из официальной вики Arch Linux. Теперь я могу загрузиться в зашифрованную систему, используя консоль облачного провайдера и введя пароль для зашифрованного раздела. Все работает отлично, я также могу подключиться к серверу через SSH, как и ожидалось.

Теперь я хочу иметь возможность удаленно разблокировать корневой раздел без использования консоли облачного провайдера, а вместо этого использовать SSH. У меня тут проблемы. Я следовал этому руководству . Точные шаги, которые я сделал:

  1. Установленные пакеты:pacman -S busybox dropbear mkinitcpio-dropbear mkinitcpio-utils mkinitcpio-netconf

  2. Сгенерировали пару ключей на клиенте для разблокировки LUKS:ssh-keygen -t rsa -f unlock_luks

  3. Загрузил открытый ключ (unlock_luks.pub) на сервер и переместил его в/etc/dropbear/root_key

  4. Восстановлены ключи OpenSSH в формате PEM.

            [root@host ~]# rm /etc/ssh/ssh_host_*
    [root@host ~]# ssh-keygen -A -m PEM
    ssh-keygen: generating new host keys: RSA DSA ECDSA ED25519
    
  5. Ключ OpenSSH rsa преобразован в ключ SSH dropbear:

             [root@host ~]# dropbearconvert openssh dropbear /etc/ssh/ssh_host_rsa_key /etc/dropbear/dropbear_rsa_host_key
     Key is a ssh-rsa key
     Wrote key to '/etc/dropbear/dropbear_rsa_host_key'
     [root@host ~]# dropbearconvert openssh dropbear /etc/ssh/ssh_host_ed25519_key /etc/dropbear/dropbear_ed25519_host_key
     Key is a ssh-ed25519 key
     Wrote key to '/etc/dropbear/dropbear_ed25519_host_key'
     [root@host ~]# dropbearconvert openssh dropbear /etc/ssh/ssh_host_ecdsa_key /etc/dropbear/dropbear_ecdsa_host_key
     Key is a ecdsa-sha2-nistp256 key
     Wrote key to '/etc/dropbear/dropbear_ecdsa_host_key'
     [root@host ~]# dropbearconvert openssh dropbear /etc/ssh/ssh_host_dsa_key /etc/dropbear/dropbear_dsa_host_key
     Error: unable to create key structure
     Error reading key from '/etc/ssh/ssh_host_dsa_key'
    
  6. Вставленные крючкиnetconf dropbear encryptsshдоfilesystemsвHOOKSиз/etc/mkinitcpio.conf. Теперь это выглядит так:

            HOOKS=(base udev autodetect modconf block mdadm_udev lvm2 netconf dropbear encryptssh filesystems keyboard fsck)
    
  7. Установлен и настроен GRUB:

            pacman -S grub
    grub-install /dev/sda
    

    Установите эти параметры в/etc/default/grub(это зашифрованный раздел LUKS):

            GRUB_CMDLINE_LINUX="cryptdevice=/dev/sda3:cryptroot ip=dhcp"
    GRUB_ENABLE_CRYPTODISK=y
    

Конфигурация сети на моем сервере использует DHCP, поэтому я используюip=dhcpтакже.
Сгенерированный файл конфигурации grub:

         grub-mkconfig -o /boot/grub/grub.cfg
  1. echo "cryptroot /dev/sda3 none luks" >> /etc/crypttab(/dev/sda3это зашифрованный раздел LUKS)

  2. Восстановленный initramfs:mkinitcpio -p linux. Выход:

             ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default'
       -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img
     ==> Starting build: 5.18.16-arch1-1
       -> Running build hook: [base]
       -> Running build hook: [udev]
       -> Running build hook: [autodetect]
       -> Running build hook: [modconf]
       -> Running build hook: [block]
     ==> WARNING: Possibly missing firmware for module: xhci_pci
       -> Running build hook: [mdadm_udev]
       -> Running build hook: [lvm2]
       -> Running build hook: [netconf]
       -> Running build hook: [dropbear]
     Key is a ssh-rsa key
     Wrote key to '/etc/dropbear/dropbear_rsa_host_key'
     Error: unable to create key structure
     Error reading key from '/etc/ssh/ssh_host_dsa_key'
     Key is a ecdsa-sha2-nistp256 key
     Wrote key to '/etc/dropbear/dropbear_ecdsa_host_key'
     dropbear_rsa_host_key : SHA256:J9v2M8Lso02myd7Ah5Gk2itcNOq0dWVyARVSpBzx8R0
     dropbear_ecdsa_host_key : SHA256:1c9URey3Z3JnUAWXKGFIVruzcWnhBtiqiQsEe/TdLXM
       -> Running build hook: [encryptssh]
     ==> WARNING: Possibly missing firmware for module: qat_4xxx
       -> Running build hook: [filesystems]
       -> Running build hook: [keyboard]
       -> Running build hook: [fsck]
     ==> Generating module dependencies
     ==> Creating zstd-compressed initcpio image: /boot/initramfs-linux.img
     ==> Image generation successful
     ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'fallback'
       -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux-fallback.img -S autodetect
     ==> Starting build: 5.18.16-arch1-1
       -> Running build hook: [base]
       -> Running build hook: [udev]
       -> Running build hook: [modconf]
       -> Running build hook: [block]
     ==> WARNING: Possibly missing firmware for module: qed
     ==> WARNING: Possibly missing firmware for module: qla2xxx
     ==> WARNING: Possibly missing firmware for module: bfa
     ==> WARNING: Possibly missing firmware for module: qla1280
     ==> WARNING: Possibly missing firmware for module: wd719x
     ==> WARNING: Possibly missing firmware for module: aic94xx
     ==> WARNING: Possibly missing firmware for module: xhci_pci
       -> Running build hook: [mdadm_udev]
       -> Running build hook: [lvm2]
       -> Running build hook: [netconf]
     ==> WARNING: Possibly missing firmware for module: cfg80211
     ==> WARNING: Possibly missing firmware for module: wcn36xx
     ==> WARNING: Possibly missing firmware for module: mt7603e
     ==> WARNING: Possibly missing firmware for module: rsi_usb
     ==> WARNING: Possibly missing firmware for module: rsi_sdio
     ==> WARNING: Possibly missing firmware for module: mwl8k
     ==> WARNING: Possibly missing firmware for module: usb8xxx
     ==> WARNING: Possibly missing firmware for module: libertas_sdio
     ==> WARNING: Possibly missing firmware for module: libertas_spi
     ==> WARNING: Possibly missing firmware for module: libertas_cs
     ==> WARNING: Possibly missing firmware for module: mwifiex_sdio
     ==> WARNING: Possibly missing firmware for module: mwifiex_usb
     ==> WARNING: Possibly missing firmware for module: zd1201
     ==> WARNING: Possibly missing firmware for module: zd1211rw
     ==> WARNING: Possibly missing firmware for module: p54spi
     ==> WARNING: Possibly missing firmware for module: p54pci
     ==> WARNING: Possibly missing firmware for module: p54usb
     ==> WARNING: Possibly missing firmware for module: orinoco_usb
     ==> WARNING: Possibly missing firmware for module: rtl8723ae
     ==> WARNING: Possibly missing firmware for module: b43
     ==> WARNING: Possibly missing firmware for module: b43legacy
     ==> WARNING: Possibly missing firmware for module: ipw2200
     ==> WARNING: Possibly missing firmware for module: ipw2100
     ==> WARNING: Possibly missing firmware for module: atmel
     ==> WARNING: Possibly missing firmware for module: at76c50x_usb
     ==> WARNING: Possibly missing firmware for module: mlxsw_spectrum
     ==> WARNING: Possibly missing firmware for module: nfp
     ==> WARNING: Possibly missing firmware for module: liquidio
     ==> WARNING: Possibly missing firmware for module: bnx2x
     ==> WARNING: Possibly missing firmware for module: bna
     ==> WARNING: Possibly missing firmware for module: softing_cs
       -> Running build hook: [dropbear]
     Key is a ssh-rsa key
     Wrote key to '/etc/dropbear/dropbear_rsa_host_key'
     Error: unable to create key structure
     Error reading key from '/etc/ssh/ssh_host_dsa_key'
     Key is a ecdsa-sha2-nistp256 key
     Wrote key to '/etc/dropbear/dropbear_ecdsa_host_key'
     dropbear_rsa_host_key : SHA256:J9v2M8Lso02myd7Ah5Gk2itcNOq0dWVyARVSpBzx8R0
     dropbear_ecdsa_host_key : SHA256:1c9URey3Z3JnUAWXKGFIVruzcWnhBtiqiQsEe/TdLXM
       -> Running build hook: [encryptssh]
     ==> WARNING: Possibly missing firmware for module: qat_4xxx
       -> Running build hook: [filesystems]
       -> Running build hook: [keyboard]
       -> Running build hook: [fsck]
     ==> Generating module dependencies
     ==> Creating zstd-compressed initcpio image: /boot/initramfs-linux-fallback.img
     ==> Image generation successful
    

Здесь вы можете увидеть странную ошибку dropbear:

         Error: unable to create key structure
   Error reading key from '/etc/ssh/ssh_host_dsa_key'

Я не знаю, почему это происходит, и может ли это быть моей проблемой, почему я не могу подключиться к Dropbear SSH, потому что я использую ключ RSA вместо DSA для установки SSH-соединения dropbear, но в любом случае я прилагаю некоторые дополнительные подробности.

      [root@host ~]# ls -l /etc/dropbear
total 16
-rw------- 1 root root  140 Aug 11 14:01 dropbear_ecdsa_host_key
-rw------- 1 root root   83 Aug 11 14:00 dropbear_ed25519_host_key
-rw------- 1 root root 1189 Aug 11 13:13 dropbear_rsa_host_key
-rw-r--r-- 1 root root  563 Aug 11 11:15 root_key
[root@host ~]# ls -l /etc/ssh
total 536
-rw-r--r-- 1 root root 505489 Apr  8 14:34 moduli
-rw-r--r-- 1 root root   1531 Apr  8 14:34 ssh_config
-rw-r--r-- 1 root root   3131 Aug 11 09:50 sshd_config
-rw------- 1 root root    668 Aug 11 12:57 ssh_host_dsa_key
-rw-r--r-- 1 root root    599 Aug 11 12:57 ssh_host_dsa_key.pub
-rw------- 1 root root    227 Aug 11 12:57 ssh_host_ecdsa_key
-rw-r--r-- 1 root root    171 Aug 11 12:57 ssh_host_ecdsa_key.pub
-rw------- 1 root root    399 Aug 11 12:57 ssh_host_ed25519_key
-rw-r--r-- 1 root root     91 Aug 11 12:57 ssh_host_ed25519_key.pub
-rw------- 1 root root   2459 Aug 11 12:57 ssh_host_rsa_key
-rw-r--r-- 1 root root    563 Aug 11 12:57 ssh_host_rsa_key.pub
[root@host ~]# cat /etc/ssh/ssh_host_dsa_key
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKBgQDrcndi0o+A7wKsoc5jL57HgEOJwxKSYBMJWC5314/e3vJ3ADz9
8L4fYbRSmpJrSYvkQsHjALYJsAz7P3KsD6a1NqFlrgX/3aUeEaxQ6yGH1OdX7QeB
GwXSxHnGt07PgbkuQPulASu+d0XLXciCg65d+7HxNw+EKrf+h5qMh8tOHwIVAJD2
2Js/dX/DOC7GTO5EkRMZ9WcBAoGAedXP6N5g2LPh5NuT6dLZA6FMmSkS6RZ+/ofN
5gC1g/zDUcX1xctZzPcaQt94fY+lVLERyBb8kf1/nAFpoHTSEyzmlbw16DsFYYjG
T5E1cOd2NGnmR+mPyQJCkW95HvFdjQreomA1k7QKdndnIwIkjcyWCrZyMw4xydnT
WOUF+aYCgYEAlcX9jnnKzfUmP2bF5MkBeKsMzEYG8/SvECblhuM4J6+wCR5pOhSg
owToGa6pPIsIsLR/DXsHpd8xij+D0oRbKtc2Al3c8HbPJ8tcPfnPPjOpsSMd8YUv
dkj0zg5sIh6ujTcWM5BbDvGKpU+5eW0HHvHU6E/G9tet76/HKpgQtl0CFA/0lVMi
J5VrlqWYS/T94pZqwL8B
-----END DSA PRIVATE KEY-----
  1. Перезагрузить.

  2. Сервер запущен и ожидает парольной фразы. Снимок экрана консоли облачного провайдера.
    Я сравнил свои результаты с результатами этого руководства . Кажется, единственная разница в том, что мой вывод содержит строку:

            SIOCADDRT: Network is unreachable
    
  3. Попытка подключиться к SSH-серверу dropbear с клиента:

            $ eval $(ssh-agent)
    Agent pid 20578
    $ ssh-add unlock_luks
    Identity added: unlock_luks (<USER>)
    $ ssh -v root@<SERVERIP>
    

Выход:

      $ ssh -v root@<SERVERIP>
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: include /etc/ssh/ssh_config.d/*.conf matched no files
debug1: /etc/ssh/ssh_config line 21: Applying options for *
debug1: Connecting to <SERVERIP> [<SERVERIP>] port 22.

Никогда не подключается.Nmap говорит, что порт SSH фильтруется:

      $ nmap <SERVERIP> -p 22
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 3.08 seconds
$ nmap <SERVERIP> -p 22 -Pn
Nmap scan report for <HOST> (<SERVERIP>)
Host is up.

PORT   STATE    SERVICE
22/tcp filtered ssh

Nmap done: 1 IP address (1 host up) scanned in 2.12 seconds

Трассировка nmap (sudo nmap <SERVERIP> -p 22 -Pn --traceroute) показывает, что пакет доходит не до моего сервера, а до другого сервера. Но когда диск разблокирован и система полностью запустилась, пакет достигает моего сервера, как и ожидалось, и nmap сообщает, что порт SSH открыт.

Надеюсь на вашу помощь!

0 ответов

Другие вопросы по тегам