ssh login dissable, mas permitir copy-id

2

Eu tenho um usuário que é usado apenas para um proxy, para que ninguém possa fazer login.

#passwd file entry
proxyuser:x:996:99::/home/proxyuser:/bin/false

mas gostaria de ativar o ssh-copy-id para esse usuário

Como faço isso? Preciso de um shell personalizado ou o quê?

    
por zidarsk8 05.04.2014 / 13:48

2 respostas

0

Na maioria dos sistemas ssh-copy-id é um script de shell simples que cria uma lista de IDs locais no sistema executando o software ssh client, conecta-se ao sistema remoto usando ssh, solicita ao usuário autenticar e copia os ids para o authorized_keys arquivos no sistema remoto.

A última parte do script se parece com isso pelo menos em openssh-6.4p1 no meu sistema Fedora 20:

printf '%s\n' "$NEW_IDS" | ssh "$@" "
            umask 077 ;
            mkdir -p .ssh && cat >> .ssh/authorized_keys || exit 1 ;
            if type restorecon >/dev/null 2>&1 ; then restorecon -F .ssh .ssh/authorized_keys ; fi" \
  || exit 1

Portanto, para que ssh-copy-id funcione, você precisará de um shell remoto restrito que permita especificar não apenas os comandos que o usuário pode executar, mas também os arquivos que ele pode acessar (usando o redirecionamento de saída). Eu não conheço nenhum shell restrito que permita essas personalizações.

    
por 05.04.2014 / 14:09
0

Geralmente, eu recomendaria o uso de um comando em ~/.ssh/authorized_keys , mas isso não faz muito sentido quando a intenção é suportar ssh-copy-id .

Um shell personalizado pode funcionar, mas pode ser um exagero. Outra alternativa a ser analisada é o uso de um arquivo ~/.ssh/rc , que será executado antes do shell dos usuários.

Para qualquer abordagem, você precisa garantir que não abre nenhum acesso indesejado. Três casos que você precisa verificar são

  • Login normal do ssh que inicia um shell de login.
  • Faça login com um único comando a ser executado.
  • Faça login com -N que não executa nenhum comando, mas permite o encaminhamento de porta.

Se houver algum desses três, você não quer permitir, você deve verificar se a sua solução pretendida não permite através do uso da senha ou mais tarde usando a chave instalada por ssh-copy-id .

    
por 05.04.2014 / 14:03

Tags