ssh permissão negada do host remoto

1

Quando eu ssh da minha caixa (Arch Linux) para uma caixa remota (servidor Fedora) usando uma chave, ele funciona com um usuário (user1), mas não com user2. Ambos os usuários usam a mesma chave ssh: aquela na pasta inicial do user2 ssh. ( /home/user2/.ssh/id_rsa com os modos corretos).

No host remoto, ambos os usuários têm um diretório inicial com o mesmo arquivo ~/.ssh/authorized_keys .

EDITAR

Como por solicitação, algum arquivo de configuração:

No host remoto :

/etc/ssh/sshd_config

Port XXXX
Allowusers user1 user2
PermitRootLogin without-password
#PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys
#HostbasedAuthentication no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes

$ journalctl -u sshd
Accepted publickey for user1 from XX.YY.XX.YY port XXXX ssh2: RSA SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4  <-- when connecting as user1
Connection closed by authenticating user user2 XX:YY:XX:YY port XXX [preauth]  <-- when connecting as user2

user2 (sem trabalho) dir home:

ls -la /home/user2
drwx------. 2 user2 user  4.0K Jan 31 19:18 .ssh/
 ls -la /home/user2/.ssh
-rw-------. 1 user2 user2   393 Jan 31 18:12 authorized_keys

Selinux habilitado no servidor (padrão para o fedora). Por favor, note que user1 é o usuário padrão existente quando o servidor é novo e user2 foi adicionado por mim mesmo.

user1 (trabalhando)

ls -Za /home/user1
 unconfined_u:object_r:ssh_home_t:s0 .ssh/ 
ls -Za /home/user1/.ssh
 unconfined_u:object_r:ssh_home_t:s0 ./  unconfined_u:object_r:user_home_dir_t:s0 ../       unconfined_u:object_r:ssh_home_t:s0 authorized_keys

user2 (não funciona)

ls -Za /home/user2 
unconfined_u:object_r:unlabeled_t:s0 .ssh/
ls -Za /home/user2/.ssh
unconfined_u:object_r:unlabeled_t:s0 ./  unconfined_u:object_r:user_home_dir_t:s0 ../      unconfined_u:object_r:unlabeled_t:s0 authorized_keys

diff: r: sem rótulo vs r: ssh_home _

Na caixa local :

user2@hortensia ➤➤ ~ % ls -al .ssh
-rw-------   1 user2 user2  1.8K Jan 16 18:19 id_rsa
-rw-------   1 user2 user2   396 Jan 16 18:19 id_rsa.pub
user2@hortensia ➤➤ ~ % ls -al
drwx------    2 user2 user2  4.0K Feb  1 08:06  .ssh/

Não consigo descobrir por que o ssh está trabalhando para o usuário1 e não para o usuário2. No host remoto, parei sshguard e iptables , mas isso não muda nada. O sshd_config é muito básico, tem uma linha Allowusers com user1 e user2 e permite a conexão com a chave. Ao executar o ssh no modo detalhado, posso ver a diferença na mensagem quando o usuário1 ou o usuário2 se conectam.

user1

 $ ssh -vv -p XX [email protected]
 ....................
 debug1: Next authentication method: publickey
 debug1: Offering public key: RSA SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4 /home/user2/.ssh/id_rsa
 debug2: we sent a publickey packet, wait for reply
 debug1: Server accepts key: pkalg rsa-sha2-512 blen 279
 debug2:input_userauth_pk_ok:SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4                                                                                                                                                                                                                                                                    
 debug1: Authentication succeeded (publickey).
 Authenticated to XX.YY.XX.YY ([XX.YY.XX.YY]:XXXX).
 debug1: channel 0: new [client-session]
 debug2: channel 0: send open
 debug1: Requesting [email protected]
 debug1: Entering interactive session.
 debug1: pledge: network
 debug1: client_input_global_request: rtype [email protected] want_reply 0
 debug2: channel_input_open_confirmation: channel 0: callback start
 debug2: fd 3 setting TCP_NODELAY
 debug2: client_session2_setup: id 0
 debug2: channel 0: request pty-req confirm 1
 debug2: channel 0: request shell confirm 1
 debug2: channel_input_open_confirmation: channel 0: callback done
 debug2: channel 0: open confirm rwindow 0 rmax 32768
 debug2: channel_input_status_confirm: type 99 id 0
 debug2: PTY allocation request accepted on channel 0
 debug2: channel 0: rcvd adjust 2097152
 debug2: channel_input_status_confirm: type 99 id 0
 debug2: shell request accepted on channel 0
 Last login: Thu Feb  1 07:08:04 2018 from XX.YY.XX.YY
 [user1@dahlia ~]$

Agora, ao se conectar ao usuário2

$ ssh -vv -p XX [email protected]
...........
debug1: Next authentication method: publickey
debug1: Offering public key: RSA SHA256:WT722lmf2CkXC8T6hGScDl+wZW71Ls3/U2W8FHh+vK4 /home/user2/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic
debug1: Trying private key: /home/user1/.ssh/id_dsa
debug1: Trying private key: /home/user1/.ssh/id_ecdsa
debug1: Trying private key: /home/user1/.ssh/id_ed25519
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
[email protected]: Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

Após mais de um dia, ainda não consigo corrigir esse erro. Obrigado por ajuda / dicas.

    
por gabx 01.02.2018 / 08:59

1 resposta

1

Sua saída ls -l mostra que, além das permissões normais, os contextos selinux estão definidos:

ls -la /home/user2/.ssh
-rw-------. 1 user2 user2   393 Jan 31 18:12 authorized_keys
          ^ this dot indicates additional selinux contextes

Sua saída ls -Z mostra que o contexto de tipo do diretório .ssh e os arquivos nela estão definidos como unlabeled_t :

ls -Za /home/user2/.ssh
unconfined_u:object_r:unlabeled_t:s0 ./

Este contexto deve ser configurado para ssh_home_t , então o sshd pode usá-lo.

Executar

chcon -R -t ssh_home_t .ssh

para definir o contexto recursivamente no diretório .ssh .

    
por 01.02.2018 / 10:57