Localização adequada das chaves SSH para um usuário do sistema?

5

Eu tenho uma conta do sistema com a qual eu corro um banco de dados (mongodb). Por padrão, não tem casa. Agora gostaria de acionar comandos scp dessa conta, com autenticação de chaves ssh para um servidor remoto, para exportar backups.

Devo criar apenas as pastas / home / mongodb e /home/mongodb/.ssh manualmente para armazenar as chaves SSH, como o padrão para usuários comuns? Ainda é considerada uma conta do sistema depois disso?

Obrigado!

    
por Thibaut Barrère 12.02.2011 / 20:47

3 respostas

10

Usando a opção -i para SCP você pode especificar qualquer chave privada SSH (que o usuário pode ler) como o "Arquivo de Identidade" - isso pode evitar sua pergunta (você pode colocar a chave onde quiser, contanto que como é legível pelo usuário do MongoDB e você especifica com -i : -)

Mergulhando na pergunta que você fez, a resposta unix genérica à sua pergunta é colocá-la no diretório .ssh no diretório home do usuário. Para localizar esse diretório home, procure em / etc / passwd (veja a página de manual do arquivo, se você não estiver familiarizado com o seu formato).

Se, como você observou, o usuário não tiver um diretório inicial (ele está definido como algo inválido ou / ), você poderá criar um diretório home para esse usuário e atualizar sua conta para apontar para o diretório home correto (as ferramentas para fazer isso variam de sistema para sistema, no entanto vipw geralmente é um bom lugar para começar). Isso reduz o problema acima.

Quanto ao que constitui uma "conta do sistema", essa é uma questão religiosa. Em meus ambientes, "contas do sistema" têm UIDs numéricos inferiores a 1000 e sua senha bloqueada (senha criptografada definida como "*").
Outras pessoas lhe dirão que, para ser uma "conta do sistema", ela deve ter nologin como seu shell, ou que o diretório home deve estar em um lugar específico (ou inexistente), ou que todos destes critérios devem ser atendidos: -)

    
por 12.02.2011 / 22:04
1

Se você estiver executando a distribuição Debian, então cada usuário que não tenha home em / home / user tem seu home em / var / lib / user. Lá você pode encontrar ou criar (se já não existir) o diretório .ssh /. Eu não tenho certeza se esse caminho é o mesmo também para outra distribuição (centos, ...).

    
por 12.02.2011 / 20:58
0

Provavelmente seria melhor configurar uma conta de usuário comum, e apenas definir seu shell como notty, e usar ssh-keygen -t rsa para configurar as permissões da pasta ssh.

    
por 12.02.2011 / 20:57

Tags