De acordo com as práticas recomendadas de segurança, não se deve permitir o login raiz sobre SSH com senha ou chaves. Em vez disso, sudo deve ser usado.
No entanto, se alguém quiser usar o SSH (SFTP) para edição remota de arquivos de configuração do servidor, como aqueles que vivem em / etc (Apache, Cron, o nome dele), como isso deve ser feito?
A edição remota de arquivos acessíveis pela raiz por SFTP pode ser compatível com as práticas recomendadas de segurança
Como definir permissões de arquivo, grupos de usuários e de forma que as melhores práticas de segurança sejam seguidas
Atualmente, uso a autenticação de chave pública protegida por senha para fazer login como root, mas não tenho certeza se há algo mais seguro que eu possa fazer, para que os logins SSH voltados para a raiz possam ser totalmente desabilitados.
O servidor é o Ubuntu 12.04.
Respostas:
Se a edição remota for realmente desejada, uma solução simples seria manter uma cópia do / etc (ou partes dele) em outro usuário local e configurar o sistema para copiar as alterações de lá para o / etc real. Melhor ainda seria usar um git - ou svn, ou qualquer outro sistema de controle de versão de sua escolha - e você teria um registro adicional de alterações também.
Também é possível configurar o chroot no SFTP e desativar o logon normal para uma conta específica - ou limitar o logon para esse usuário apenas a partir de endereços IP especificados - com o mesmo recurso do OpenSSH (Match Group etc.). Sobre isso, verifique http://www.thegeekstuff.com/2012/03/chroot-sftp-setup/
No entanto, lembre-se de que a maioria dos arquivos de configuração em / etc torna possível obter acesso root apenas editando-os. Eu vi sistemas configurados com svn / git para verificar a validação dos arquivos de configuração antes de aceitar alterações nos arquivos - que poderiam ser usados para aceitar apenas formatos de configuração seguros.
De qualquer forma, existem muitas soluções diferentes para o problema. Essa foi apenas uma abordagem.
fonte
Não vejo por que não seria bom editar sudo esses arquivos através do SSH. Eu faço isso o tempo todo, por exemplo
Se você deseja usar um editor de GUI, pode usar o tunelamento X. Você precisa permiti-lo no seu arquivo ssh conf e, em seguida, usar a
-X
opção na sua linha de comando ssh.Em seguida, você pode editar o arquivo de arquivo em um editor da GUI:
fonte
Veja esta resposta SO para obter um exemplo de como fazer isso através de um túnel SSH no Sublime Text.
fonte