“Falha na solicitação de alocação de PTY” ao tentar se conectar usando o SSH com o ControlMaster

3

Estou tentando fazer login no desktop do Ubuntu. Recebo a seguinte mensagem de erro:

  

Solicitação de alocação de PTY falhou

O que significa e como se conectar à minha área de trabalho?

Esta é a saída com -v :

debug1: Reading configuration data /home/evag/.ssh/config  
debug1: /home/evag/.ssh/config line 1: Applying options for *
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: auto-mux: Trying existing master
debug1: mux_client_request_session: master session id: 2
PTY allocation request failed

Dado o resultado apresentado acima com a opção detalhada, acho que entendo de onde o problema vem: Eu tenho dois computadores, A e B. Estou usando um controlmaster em A para manter conexões persistentes com B. B de maneira segura, com command=/bin/false para limitar o uso de A em B (ele tem apenas recursos de encaminhamento).

No entanto, eu gostaria de me conectar ao ssh de A para B sem usar essa identidade (-i), mas o problema é que, como há uma conexão persistente, ela usa a conexão existente independentemente da opção que coloquei -i , então acabo não sendo capaz de alocar um PTY.

Portanto, considerando que existe um controlmaster e uma conexão protegida de A para B, como posso obter outra conexão de A para B, mas desta vez com direitos totais?

    
por evaG 09.07.2012 / 10:18

1 resposta

0

Estou assumindo que você especificou o ControlPath e o ControlMaster em ~ / .ssh / config? Nesse caso, o ssh sempre verificará o ControlPath ao tentar acessar esse servidor. Pelo que entendi, este é o padrão se um ControlPath existir mesmo se ControlMaster = no estiver definido (porque é definido automaticamente como 'não' se o ControlPath existir para não tentar criar um novo ControlMaster).

Você precisará especificar um novo ControlPath:

ssh -o ControlPath=~/.ssh/%r@%h:%p-newsession server

No entanto: Eu faço a mesma coisa, mas não preciso dizer para executar 'false', eu simplesmente uso as opções disponíveis no SSH. Consulte a man page para obter uma maneira de criar conexões de encaminhamento sem iniciar um shell. Quando feito corretamente, o PTY é alocado apenas conforme necessário, mesmo na mesma conexão de controle.

-f      Requests ssh to go to background just before command execution.
-N      Do not execute a remote command.  This is useful for just forwarding ports.
-T      Disable pseudo-tty allocation.

Então, no meu caso (junto com outras opções não relacionadas):

ssh -fNT server

onde ~ / .ssh / config já especifica o ControlPath.

    
por Ken Sharp 17.02.2014 / 02:37

Tags