Solicitação de sessão recusada pelo mestre: Permissão negada

3

Estou tentando configurar a multiplexação de SSH, mas estou com um erro e há, na medida do 0, ocorrências no Google para a mensagem de erro exata.

Eu criei ~/.ssh/config com o conteúdo:

Host *
 ControlPath ~/.ssh/master-%r@%h:%p

Em seguida, criei a conexão principal executando:

ssh -vMM [email protected]

que parece criar o soquete de multiplexação com sucesso:

...
Authenticated to host.example.com ([1.2.3.4]:22).
debug1: setting up multiplex master socket
debug1: channel 0: new [/home/user/.ssh/[email protected]:22]
debug1: channel 1: new [client-session]
debug1: Entering interactive session.
...

Então, tento executar um comando via ssh em outra janela:

ssh -v [email protected] ls

No entanto, isso parece não usar o soquete de multiplexação:

OpenSSH_7.5p1, OpenSSL 1.1.0f  25 May 2017
debug1: Reading configuration data /home/user/.ssh/config
debug1: /home/user/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config
Master refused session request: Permission denied
debug1: Connecting to host.example.com [1.2.3.4] port 22.
...

O que poderia causar o erro Master refused session request: Permission denied ?

Editar: as permissões de ~/.ssh e ~/.ssh/config são 700 e 644, respectivamente, por isso não vejo um problema. ~/.ssh/master-* não existe, eu acho que é um soquete abstrato do UNIX (e, portanto, não existe realmente no sistema de arquivos)? Mas isso ainda não explica o erro "acesso negado".

Além disso, notei que, ao tentar estabelecer a segunda conexão, a conexão principal imprime:

debug1: channel 2: new [mux-control]
debug1: permanently_drop_suid: 0
ssh_askpass: exec(/usr/lib/ssh/ssh-askpass): No such file or directory
debug1: channel 2: free: mux-control, nchannels 3

Talvez isso esteja relacionado. Estou conectado usando uma chave SSH não criptografada, por isso não vejo por que o SSH precisaria pedir uma senha.

    
por Vladimir Panteleev 27.09.2017 / 19:22

1 resposta

4

Eu descobri o que está causando o erro "Acesso negado".

Por padrão, o SSH parece querer pedir interativamente permissão quando outro processo SSH deseja usar uma sessão multiplex existente. No entanto, o programa ssh-askpass , que ele usa para solicitar permissão, estava ausente no meu sistema, portanto, o SSH usa como padrão "não, não conceda acesso", resultando em uma mensagem de erro "acesso negado" no cliente.

Se ssh-askpass estiver instalado (em x11-ssh-askpass package no Arch Linux), então uma caixa de diálogo como a seguinte será exibida:

Aseleçãode"OK" permitirá que a tentativa de conexão continue.

O prompt em si foi causado porque eu especifiquei -M duas vezes na linha de comando do mestre. Para citar SSH(1) :

Multiple -M options places ssh into “master” mode with confirmation required before slave connections are accepted.

    
por 27.09.2017 / 22:51

Tags