TLDR; SELinux
Voltei a usar a mesma conta de usuário em ambas as máquinas. Mais importante, isso significa que estou usando diretórios pessoais com os quais o SELinux está conectado. Você pode ver nos registros que o usuário "web" possui um diretório pessoal não padrão /var/www/
(a intenção é ser a conta de gerenciamento de conteúdo da web)
Em seguida, eu removi o diretório ~/.ssh/
na máquina do servidor, retornei para o cliente e usei ssh-copy-id
. Isso aparentemente recriou o diretório ~/.ssh/
e os arquivos de autenticação de uma maneira compatível com o SELinux. Observe que a simples remoção e recriação do diretório .ssh para o usuário "web" não foi suficiente. Parece que quando eu mudei o diretório home do usuário "web", o SELinux não estava apropriadamente envolvido ...
Eu não tenho uma resposta do porquê mas se alguém colidir com isso, tente remover o diretório -d
muda esse comportamento no lado do servidor, ~.ssh/
, e deixar o script ssh-copy-id
faz o trabalho para você.
update Aparentemente, porque executá-lo como sudo
altera as permissões de segurança para o processo. Portanto, mesmo que ps
pareça o mesmo, descobri que ps -Z
(que é o argumento do contexto SELinux-aware) não.
A única coisa que resta neste momento é pesquisar como fazer um usuário com o diretório home /var/www
na forma aprovada pelo SELinux, para que ele respeite as contas authorized_keys
file
update Eu usei chcon -R --reference=/home/anregen/.ssh /var/www/.ssh
. Esse foi o truque que levou o contexto de segurança correto para o diretório "home" realocado para user: web. Tenha em mente que isso é meio temporário, o que significa que você não deve apenas usar o chcon, mas sim criar uma nova política.