Como usuário sem privilégios, como configurar o sshd para permitir que apenas comandos especificados sejam executados quando ele é autenticado com uma senha?

0

Geralmente faço login em um servidor SSH (no qual sou um usuário sem privilégios) usando minhas chaves públicas. Também uso a autenticação por senha quando uso o servidor como git-annex  repositório.

O que eu quero fazer é permitir que apenas comandos git-annex -related sejam executados quando o sshd é autenticado com uma senha. git-annex vem com um wrapper que é uma contraparte de git-shell para git . Eu sei que eu poderia usar authorized_keys para fazer isso em outras situações, mas não neste caso particular.

Como posso fazer isso? O servidor é Debian wheezy com o OpenSSH_6.0p1 Debian-4 + deb7u3.

    
por Pteromys 05.02.2016 / 21:16

2 respostas

1

Coloque isso na frente de cada chave ssh em ~/.ssh/authorized_keys que você deseja usar exclusivamente para git-annex (substitua _MY_ANNEX_REPO_DIR _ e _PATH_TO_GIT_ANNEX_SHELL _ com valores apropriados):

command="GIT_ANNEX_SHELL_DIRECTORY=_MY_ANNEX_REPO_DIR_ _PATH_TO_GIT_ANNEX_SHELL_/git-annex-shell -c $SSH_ORIGINAL_COMMAND",no-port-forwarding,no-x11-forwarding,no-agent-forwarding

Atualmente, estou tentando substituir o Dropbox pelo git-annex. As configurações acima estão funcionando para mim há uma semana. Eu atualizarei este post se descobrir algum problema com isso.

    
por 26.03.2016 / 19:30
0

Um usuário não privilegiado não pode configurar o sshd. Você pode restringir suas entradas authorized_keys a um comando. Mas não com um login de senha. Você precisa da ajuda do root para alterar seu shell de login ou algo assim. Se ela criar um shell restrito ou uma prisão chrooted, essa customização é possível.

    
por 06.02.2016 / 22:45