Eu queria criar um novo repositório APT privado no meu VPS. Para protegê-lo, decidi me conectar via ssh e autenticar com chaves privadas / públicas.
Então, no VPS, criei uma nova conta: repo-usr
useradd -m -d /home/repo-usr -s /bin/false repo-usr
Depois disso, como raiz, gerei chaves via gpg como raiz
sudo su
gpg --key-gen
Então eu recuperei um keyid, digamos 1234
Então eu cd para 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 algum pacote para repo via:
reprepro -b /home/repo-usr/ubuntu includedeb xenial main foo.deb
No meu computador cliente, giro 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 raiz no cliente. Acredito que tenha sido autenticado com êxito, mas não tenho certeza.
Em /etc/apt/sources.list, 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, eu recebo
Falha ao buscar o ssh: //server.com/home/repo-usr/ubuntu/dists/xenial/main/binary-amd64/Package Read error - read (0: Success)
No entanto, o arquivo do pacote existe e parece bom.
Alguém tem alguma idéia do que estou fazendo de errado? A configuração mencionada acima está correta para esse cenário?