Configurando um usuário para acesso sftp em um subdiretório de outro diretório pessoal de usuários

2

Um problema interessante.

O objetivo mais amplo é configurar um diretório no qual um dos nossos clientes possa entrar (via chaves ssh, não combinação usuário / senha) e fazer upload de arquivos. Este diretório precisará ser acessado por outro usuário do cPanel (chamado user1) executando o comando crons que, por sua vez, executa scripts php para manipular esses arquivos e agir sobre eles (lendo e, possivelmente, movendo).

Eu configurei um novo usuário (chamado user2) com seu diretório home em um subdiretório de user1. Eu sou capaz de sftp para o diretório inicial do user2 usando uma combinação de nome de usuário / senha. Mas agora não consigo conectar usando as chaves ssh. Eu configurei o arquivo ~/.ssh/authorized_keys e tudo para o user2. Pelo que entendi o problema é devido à propriedade do arquivo. Como o user2 não possui explicitamente os arquivos em ~/.ssh , ele se recusa a procurar no arquivo e, portanto, recusa a chave.

Alguém tem alguma experiência, conselhos ou sugestões para resolver isso? Mesmo que minha solução inicial não seja viável e eu tenha que seguir por outro caminho.

    
por Brendan 07.05.2012 / 02:58

1 resposta

1

Você pode clicar na tag ssh que você adicionou à sua pergunta e ela terá a opção de visualizar mais informações. Você verá uma página wiki de tags escrita sobre o SSH pelos usuários do site. A resposta que você deseja está na seção Solução de problemas do wiki da tag e também é abordada em esta discussão .

Em poucas palavras, esse é o comportamento padrão do SSH. Quando você fez um diretório inicial aninhado para USER2 dentro de outro diretório inicial para USER1, você teve que dar permissão de leitura e escrita ao USER2 no diretório inicial do USER1.

O SSH protege as chaves do usuário impondo o rwx ------ em $ HOME / .ssh e garantindo que apenas o proprietário tenha permissões de gravação para $ HOME. Se um usuário diferente do respectivo proprietário tiver permissão de gravação no diretório $ HOME, ele poderá modificar maliciosamente as permissões em $ HOME / .ssh, possivelmente sequestrando as chaves do usuário, known_hosts ou algo semelhante. Em resumo, as seguintes permissões em $ HOME serão suficientes para o SSH funcionar.

  • rwx ------
  • rwxr-x ---
  • rwxr-xr-x

O SSH não funcionará corretamente e enviará avisos para os recursos de log se houver alguma variação de g + w ou o + w no diretório $ HOME. No entanto, o administrador pode substituir esse comportamento definindo StrictModes no no arquivo de configuração sshd_config (ou similar), embora esteja claro que isso não é recomendado.

    
por 07.05.2012 / 15:44