Пара ключей хоста SSH ожидает кодовую фразу, вызывающую сбой ProFTPD

Мне нужно создать образ докера с помощью ProFTPD и использовать его в качестве сервера SFTP.
Очевидно, для этого мне нужны ключи хоста SSH, но я не хочу создавать новые ключи каждый раз, когда создаю образ.
Если я создаю ключи хоста SSH с:

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa
ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa

внутри работающего контейнера без указания ключевой фразы, все будет работать отлично.
Я могу просто запустить свой SFTP-сервер с помощью команды proftpd .

Однако ключи генерируются точно так же на моем хосте, а затем копируются в образ докера с помощью директивы COPY в Dockerfile вызывает следующую ошибку при попытке запустить ProFTPD в контейнере:

Wrong passphrase for this key.  Please try again.

Wrong passphrase for this key.  Please try again.

Wrong passphrase for this key.  Please try again.
2018-11-13 11:48:21,196 2771999b0891 proftpd[53924] 2771999b0891: mod_sftp/1.0.0: error reading passphrase for SFTPHostKey '/etc/ssh/ssh_host_rsa_key': (unknown)
2018-11-13 11:48:21,197 2771999b0891 proftpd[53924] 2771999b0891: mod_sftp/1.0.0: unable to use key in SFTPHostKey '/etc/ssh/ssh_host_rsa_key', exiting

Что мне здесь не хватает?

EDIT: Dockerfile по запросу:

FROM alpine:latest

COPY etc/apk/repositories /etc/apk/repositories

COPY etc/ssh/ /etc/ssh/

COPY etc/proftpd/ /etc/proftpd/

RUN apk upgrade --no-cache

RUN apk add --no-cache \
    proftpd \
    proftpd-mod_sql_postgres \
    proftpd-mod_sftp_sql

ENTRYPOINT proftpd

И содержимое / etc / ssh внутри контейнера:

>>ls -la /etc/ssh
total 28
drwxr-xr-x    1 root     root          4096 Nov 13 13:47 .
drwxr-xr-x    1 root     root          4096 Nov 13 13:46 ..
-rw-------    1 root     root          1393 Nov 13 13:57 ssh_host_dsa_key
-rw-r--r--    1 root     root           609 Nov 13 10:11 ssh_host_dsa_key.pub
-rw-------    1 root     root          1831 Nov 13 13:57 ssh_host_rsa_key
-rw-r--r--    1 root     root           401 Nov 13 10:11 ssh_host_rsa_key.pub
-rw-r--r--    1 root     root          3177 Nov  7 18:21 sshd_config
0
задан 13 November 2018 в 16:03
2 ответа

Я полагаю, что это может быть связано с тем, что уровни шифрования по умолчанию отличаются. Если бы вы объявили байты во всех случаях, я думаю, что проблема не возникла бы.

Например, скажем:

ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa -b 1024
vs
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa -b 2048
vs
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa -b 4096
0
ответ дан 5 December 2019 в 05:03

Оказывается, по какой-то причине ключи, созданные на хосте MacOS, вызывали эту проблему.
Но ключи, сгенерированные на хосте Linux, работают должным образом - никаких проблем с неожиданно запрошенной кодовой фразой.

Я не уверен, почему это происходит, но это воспроизводимо. Я думал, что ключи DSA и RSA совместимы независимо от операционной системы.

Я был бы признателен, если бы кто-нибудь мог найти более полное объяснение, но для меня проблема решена - несмотря на то, что решение является всего лишь обходным путем без надлежащего понимания проблемы .

0
ответ дан 5 December 2019 в 05:03

Теги

Похожие вопросы