ATUALIZAÇÃO: Consegui consertar, mas não sei por que isso ocorreu

ATUALIZAÇÃO: Consegui consertar, mas não sei por que isso ocorreu

Fundo

Tenho um servidor configurado com acesso SSH via chaves ras. O acesso por senha não é permitido.

Estava funcionando bem. Meu usuário (chamarei USER1) e root poderiam fazer login com suas respectivas chaves.

ALTERAÇÕES QUE POTENCIALMENTE CAUSARAM O PROBLEMA

Ontem fiz algumas alterações no servidor, seguindo as instruçõesneste artigo, para conceder a um novo usuário (USER2) acesso limitado a uma pasta (a raiz da web). Eu também segui as instruções emEste artigo.

Para resumir essas mudanças, criei um novo usuário (USER2) e fiz um bindfsroot da web ( /home/user1/sites/domain/public/) para /home/user2/domain/public/). Algumas outras coisas foram feitas, de acordo com esses artigos, mas até onde posso dizer, nenhuma delas afeta as permissões e o acesso SSH do USER1. Portanto, não tentarei reiterar todos eles aqui.

De acordo com um desses artigos, também adicionei o seguinte ao sshd_configarquivo:

subsystem sftp internal-sftp
Match User USER2
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

Pelo que sei, essa é a única coisa que mudou desde a última vez que consegui fazer login com USER1.

EMITIR

Após fazer as alterações mencionadas acima, não consegui fazer login no dia seguinte (hoje). Eu recebo o erro, Permission denied (publickey)..

Segui todas as recomendações padrão para definir as permissões e propriedade corretas para a ~/home/USER1/.sshpasta e ~/home/USER1/.ssh/authorized_keyso arquivo. Embora nenhum deles tenha sido alterado pelas minhas ações de ontem, basicamente eu estava apenas reaplicando as permissões existentes.

O conteúdo do meu /etc/ssh/sshd_configarquivo é:

Port 22
Protocol 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
UsePrivilegeSeparation yes
KeyRegenerationInterval 3600
ServerKeyBits 1024
SyslogFacility AUTH
LogLevel INFO
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
RSAAuthentication yes
PubkeyAuthentication yes

AuthorizedKeysFile  %h/.ssh/authorized_keys
IgnoreRhosts yes
RhostsRSAAuthentication no
HostbasedAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
PasswordAuthentication no
X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
AcceptEnv LANG LC_*
UsePAM yes
Subsystem sftp /usr/lib/openssh/sftp-server

Match User USER2
PasswordAuthentication yes
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

AuthorizedKeysFile %h/.ssh/authorized_keysfoi comentado perversamente. Eu descomentei enquanto tentava corrigir esse problema.

Não sei o que está impedindo meu USER1 de ter acesso SSH baseado em chave. Se houver mais alguma informação que possa ser útil, por favor me avise.

ATUALIZAÇÃO: Consegui consertar, mas não sei por que isso ocorreu

Depois de verificar novamente se todas as permissões estavam corretas e se não havia nada estranho no sshd-configarquivo, configurei o ssh para permitir o login com senha e copiei novamente meu arquivo id_rsa.pub (usando ssh-copy-id) para o servidor.

Isso restaurou meu acesso ao USER1 com uma chave.

Não entendo totalmente por que esse problema ocorreu e pretendo usar as instruções desses artigos em servidores adicionais (já que provou ser uma maneira muito útil de conceder a um desenvolvedor (por exemplo) acesso SFTP estrito (apenas) ao site e tem permissão para fazer alterações no arquivo. Portanto, se alguém tiver tempo para apontar qual foi o erro nas instruções, faça-o.

Para evitar que você leia esses artigos, aqui está um resumo das etapas que executei:

mkdir -p /home/user2/websites/application1
chown -Rf user2:user2 /home/user2/websites
chmod -Rf 770 /home/user2/websites

Adicione o seguinte a/etc/fstab

bindfs#/home/user1/websites/domain/public /home/user2/websites/application1 fuse force-user=user2,force-group=user2,create-for-user=user1,create-for-group=user1,create-with-perms=0770,chgrp-ignore,chown-ignore,chmod-ignore 0 0

chown user1:user1 /home/user1/websites/domain/public
chmod 770 /home/user1/websites/domain/public

Criado o novo usuário:

sudo useradd -d /home/user2/website/application1 user2
sudo passwd user2

Adicionado ao sshd-config

subsystem sftp internal-sftp
Match User user2
ChrootDirectory %h
AllowTCPForwarding no
X11Forwarding no
ForceCommand internal-sftp

Então,sudo service ssh restart

PERGUNTA

Portanto, minha pergunta modificada é: o que nas etapas acima teria causado o user1acesso ssh com sua chave?

informação relacionada