O repo-usr deve ser fornecido com um shell.
usermod -s /bin/bash repo-usr
resolveu o problema.
Eu queria criar um novo repositório privado do APT no meu VPS. Para protegê-lo, decidi me conectar via ssh e autenticar por chaves privadas / públicas.
Então no VPS eu criei uma nova conta: repo-usr
useradd -m -d /home/repo-usr -s /bin/false repo-usr
Depois disso, como root, eu gerava chaves via gpg como root
sudo su
gpg --key-gen
Então eu peguei um keyid, digamos 1234
Então eu cd em casa do repo-usr e criar um repositório lá
cd /home/repo-usr
mkdir -p ubuntu/conf
E crie dois arquivos dentro do conf.
distribuições
Codename: xenial
Architectures: amd64
Components: main
SignWith: 1234
opções
ask-passphrase
Eu adiciono um pacote para repo via:
reprepro -b /home/repo-usr/ubuntu includedeb xenial main foo.deb
No meu computador cliente, eu gero o par de chaves ssh para repo-usr e coloco a chave pública em chaves autorizadas no lado do servidor (em /home/repo-usr/.ssh/authorized_keys) A chave privada gerada que transfiro para root no cliente. Acredito ter autenticado com sucesso, mas não tenho certeza.
Em /etc/apt/sources.list eu adiciono:
deb ssh://[email protected]:/home/repo-usr/ubuntu xenial main
E depois de limpar o cache do apt e executar o apt-get update, vejo que o apt simplesmente ignora os pacotes.
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
e assim por diante ... Além disso, recebo
Failed to fetch ssh://server.com/home/repo-usr/ubuntu/dists/xenial/main/binary-amd64/Package Read error - read(0: Success)
No entanto, o arquivo Package existe e parece bem.
Alguém tem alguma idéia do que estou fazendo de errado? A configuração mencionada acima está correta para tal cenário?