Я хотел создать новый частный репозиторий APT на своем VPS. Чтобы обезопасить его, я решил подключиться через ssh и пройти аутентификацию с помощью закрытых / открытых ключей.
Итак, на VPS я создал новую учетную запись: репо-УСР
useradd -m -d /home/repo-usr -s /bin/false repo-usr
После этого как root я сгенерировал ключи через gpg как root
sudo su
gpg --key-gen
Итак, я получил keyid, скажем, 1234
Затем я вернулся в дом репо-УСР и создайте там репозиторий
cd /home/repo-usr
mkdir -p ubuntu/conf
И создайте два файла внутри conf.
распределения
Codename: xenial
Architectures: amd64
Components: main
SignWith: 1234
параметры
ask-passphrase
Я добавляю пакет в репо через:
reprepro -b /home/repo-usr/ubuntu includedeb xenial main foo.deb
На моем клиентском компьютере я генерирую пару ключей ssh для репо-УСР и поместите открытый ключ в авторизованные ключи на стороне сервера (в /home/repo-usr/.ssh/authorized_keys). Сгенерированный закрытый ключ я передаю пользователю root на клиенте. Я считаю, что успешно прошел аутентификацию, но не уверен.
В /etc/apt/sources.list я добавляю:
deb ssh://repo-usr@sever.com:/home/repo-usr/ubuntu xenial main
И после очистки кеша apt и запуска apt-get update я вижу, что apt просто игнорирует пакеты.
Ign:19 ssh://server.com/home/repo-usr/ubuntu xenial/main amd64 Packages
Ign:20 ssh://server.com/home/repo-usr/ubuntu xenial/main i386 Packages
и так далее ... Вдобавок я получаю
Не удалось получить ssh: //server.com/home/repo-usr/ubuntu/dists/xenial/main/binary-amd64/Package Read error - read (0: Success)
Однако файл пакета существует и выглядит нормально.
Кто-нибудь знает, что я делаю не так? Подходит ли указанная выше установка для такого сценария?
В репо-УСР должен быть снабжен оболочкой.
usermod -s /bin/bash repo-usr
исправил проблему.