Comando: deve ser executado a partir de um terminal


9

Eu tenho uma conta de hospedagem compartilhada, entrei usando ssh. quando digito, por exemplo su, tive esta saída: su: must be run from a terminal

Esse erro está relacionado ao fato de eu não ter permissões suficientes ou a outra coisa?


Normalmente, eu esperaria que esse erro fosse uma indicação de que não há TTY alocado para a conexão, mas isso não faz muito sentido se você estiver se conectando através do SSH e obtendo um shell. Você pode compartilhar as etapas exatas que você executa para obter esse erro, começando com um ssh -F /dev/null user@hostdo seu sistema local? ( Isso -F /dev/nullfaz com que qualquer configuração SSH local do sistema ou do usuário seja ignorada.) Se você não estiver autorizado a usar su, isso normalmente causará uma mensagem de erro muito mais óbvia (embora eu não me lembre das palavras exatas e não tenha um sistema configurado onde eu possa experimentá-lo).
um CVn

1
Existe talvez uma conexão com segurança (5)? Em outras palavras, o tty da sessão ssh está listado em / etc / securetty? (prepend / dev /)
D McKeon

Você diz, por exemplo su, esse erro para outros comandos?
Ctrl-alt-delor

O que o comando ttymostra? Você está efetuando login com o ssh e digitando suou está executando ssh su? Qual emulador de terminal você está usando? Você deveria ter acesso root?
Gilles 'SO- stop be evil'

Tentando responder a todas as perguntas: Eu ingresse em ssh ( ssh -l login@host hosteu posso entrar, somente quando usar este comando) do que o tipo su(outros comandos funciona normalmente), quando digito ttyeu tenho: not a tty.
4m1nh4j1

Respostas:


4

Tente a -topção para ssh. Se isso não funcionar, tente -tt.

-t Forçar alocação pseudo-tty. Isso pode ser usado para executar programas arbitrários baseados em tela em uma máquina remota, o que pode ser muito útil, por exemplo, ao implementar serviços de menu. Várias -topções forçam a alocação de tty, mesmo se ssh não tiver tty local.


Eu tentei ssh -tl root@host hoste com o dobro t, mas tive o mesmo resultado. Ps: como é mencionado na documentação, para fazer login no ssh, devo usar um comando como este ssh -l login@host host.
4m1nh4j1

Por que você faz login como root? e você não precisa do -l.
Ctrl-alt-delor

Estou usando -lporque descobri que, sem adicioná-lo, não consigo fazer login. Eu posso ver isso na documentação dtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System (a única página que encontrei está em francês). Se eu não usar -lssh, não aceite minha senha.
4m1nh4j1

Eu criei uma conta ssh com " root" como login, então eu uso root@hostpara ssh
4m1nh4j1

Login como root, considerado prejudicial: a maioria das pessoas preocupadas com a segurança desabilita o login root. Você pode obter privilégios de root quando estiver conectado (eu recomendo sudo). Se você também desativar a autenticação por senha, forçando assim a autenticação baseada em chave, precisará da chave e da senha para obter a raiz.
Ctrl-alt-delor
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.