Corrigindo o acesso SSH perdido com a chave rsa

1

Antecedentes

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

Estava funcionando bem. Meu usuário (eu chamei esse USER1) e o root poderia logar com suas respectivas chaves.

ALTERAÇÕES QUE POSSAM POTENCIALMENTE PROVOCADAS

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

Para resumir essas alterações, criei um novo usuário (USER2) e fiz um bindfs da raiz 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 de USER1. Então não vou tentar reiterar todos eles aqui.

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

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

Até onde eu sei, essa é a única coisa que mudou desde a última vez que consegui fazer o login com USER1.

PROBLEMA

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

Eu segui todas as recomendações padrão para definir as permissões e a propriedade corretas para a pasta ~/home/USER1/.ssh e o arquivo ~/home/USER1/.ssh/authorized_keys . Embora, nenhum deles tenha sido alterado por minhas ações ontem, então eu basicamente estava reaplicando as permissões existentes.

O conteúdo do meu arquivo /etc/ssh/sshd_config é:

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_keys foi claramente comentado. Eu descomentei isso enquanto tentava corrigir esse problema.

Não sei o que está impedindo que meu USER1 tenha acesso SSH com base em chave. Se houver alguma informação adicional que possa ser útil, por favor me avise.

UPDATE: Conseguido consertar, mas não tenho certeza do porque ocorreu

Tendo verificado duas vezes se todas as permissões estavam corretas e não havia nada de estranho no arquivo sshd-config , configurei o ssh para permitir login de senha e, em seguida, copiei novamente meu arquivo id_rsa.pub (usando ssh-copy-id ) para o servidor.

Isso restaurou meu acesso para USER1 com uma chave.

Eu não entendo totalmente por que esse problema ocorreu e pretendo usar as instruções contidas nesses artigos em servidores adicionais (pois provou ser uma maneira muito útil de conceder a um desenvolvedor (por exemplo) acesso restrito ao SFTP (somente ) para o site, e tem permissão para fazer alterações de arquivo.Então, se alguém tem o tempo para apontar o que o erro foi nas instruções, por favor, faça.

Para evitar que você leia esses artigos, aqui está uma pausa dos passos que eu dei:

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

Em seguida, sudo service ssh restart

PERGUNTA

Então, minha pergunta modificada é, o que nas etapas acima teria causado user1 de ter acesso ssh com sua chave?

    
por inspirednz 09.04.2018 / 09:15

0 respostas