Não é possível criar novas telas quando conectado a um servidor por ssh

3

Quando fisicamente conectado ao meu "servidor" (digitando comandos da área de trabalho de um mid 2006 iMac), ele dá a seguinte saída:

mac~$ screen -ls
No Sockets found in /var/folders/ht/rhhsw0515vl_ym59683911400000gn/T/.screen.

bash$ screen -dmS foo
bash$ screen -ls
There is a screen on:
    4250.foo    (Detached)
1 Socket in /var/folders/ht/rhhsw0515vl_ym59683911400000gn/T/.screen.

bash$ 

Qual é o comportamento que se esperaria. No entanto, ao executar os mesmos comandos sobre o ssh autenticado por RSA, o comando screen -dmS foo parece não funcionar:

remote-bash$ screen -ls
No Sockets found in /var/folders/h4/_8scfsb54kd3mm7q6n9lq8nc0000gn/T/.screen.

remote-bash$ screen -dmS foo
remote-bash$ screen -ls
No Sockets found in /var/folders/h4/_8scfsb54kd3mm7q6n9lq8nc0000gn/T/.screen.

remote-bash$ 

Ao tentar o comando de tela padrão, sem opções, o shell inteiro trava e não pode ser encerrado com ^ C.

Note que eu posso ver, anexar e matar telas lançadas no servidor, mas não consigo lançá-las por ssh.

Existe uma explicação para essa inconsistência ou a questão é peculiar à minha máquina?

    
por catalogue_number 27.02.2016 / 10:52

2 respostas

0

Eu encontrei o problema!

Acontece que, por algum motivo ou outro, a tela não pode gravar sem que o PAM esteja habilitado. Eu já havia lido anteriormente, mesmo se PasswordAuthenticaiton e ChallengeResponseAuthentication estiverem definidos como no , o PAM ainda é uma vulnerabilidade, por isso o desativei no arquivo /etc/sshd_config .

Tudo o que precisamos é alterar UsePAM no para UsePAM yes em /etc/sshd_config e o comando funciona conforme o esperado. Não sei se há uma maneira de usar screen sem que o PAM seja ativado, mas não acredito que seja um problema de segurança especialmente grave para meus propósitos.

    
por 20.03.2016 / 02:07
2
A primeira coisa que me vem à mente é que a tela do shell está sendo ativada quando conectada via ssh morre imediatamente por algum motivo. Tente usar

screen -LdmS foo

em vez disso e, em seguida, examine o conteúdo do arquivo screenlog.0 para descobrir.

EDIT depois do comentário do OP:

parece que a tela não é capaz de iniciar um shell. Eu acho que seu servidor ssh não está definindo a variável de ambiente SHELL corretamente ou seu shell precisa de algo mais para executar que seu servidor ssh não fornece por padrão. Por favor, verifique a saída de

echo $SHELL

e, em seguida, tente executar o mesmo shell manualmente (ou seja, execute o comando que você vê na saída).

Além disso, pode haver problemas de permissão no terminal. Sob o meu OSX 10.9.5, agora, isto é / dev / ttys000, no seu caso você pode usar o comando who para descobrir o seu. A tela precisa de permissão de gravação para o usuário atual nesse terminal. Agora eu li no seu comentário que as permissões no seu caso são:

crw--w---- 1 sandersfamily tty 16, 1 7 Mar 23:31 ttys001

"sandersfamily" é o usuário com o qual você está se conectando via ssh? Se não, então esse é o problema.

    
por 28.02.2016 / 07:58