Commande: doit être exécutée à partir d'un terminal


9

J'ai un compte d'hébergement partagé, je me suis connecté en utilisant ssh. quand je tape par exemple suj'avais cette sortie: su: must be run from a terminal

Cette erreur est-elle liée au fait que je n'ai pas les autorisations suffisantes ou à autre chose?


Normalement, je m'attends à ce que cette erreur indique qu'il n'y a pas de TTY alloué pour la connexion, mais cela n'a pas beaucoup de sens si vous vous connectez via SSH et obtenez un shell. Pouvez-vous partager les étapes exactes que vous prenez pour obtenir cette erreur, en commençant par un à ssh -F /dev/null user@hostpartir de votre système local? (Le -F /dev/nullfait que toute configuration SSH locale du système ou de l'utilisateur soit ignorée.) Si vous n'êtes pas autorisé à utiliser su, cela provoquera normalement un message d'erreur beaucoup plus évident (bien que je ne me souvienne pas de la formulation exacte et que je n'ai pas un système mis en place où je peux l'essayer).
un CVn

1
Y a-t-il peut-être une connexion avec securetty (5)? En d'autres termes, le tty de la session ssh est-il répertorié dans / etc / securetty? (prepend / dev /)
D McKeon

Vous dites par exemple su, obtenez-vous cette erreur pour d'autres commandes?
ctrl-alt-delor

Que montre la commande tty? Vous connectez-vous avec ssh puis saisissez su-vous ou exécutez-vous ssh su? Quel émulateur de terminal utilisez-vous? Êtes-vous censé avoir un accès root?
Gilles 'SO- arrête d'être méchant'

Essayer de répondre à toutes les questions: je me connecte avec ssh ( ssh -l login@host hostje peux vous connecter, que lorsque vous utilisez cette commande) que le type su( d' autres commandes fonctionne normalement), quand je tape ttyje: not a tty.
4m1nh4j1

Réponses:


4

Essayez l' -toption ssh. Si cela ne fonctionne pas, essayez -tt.

-t Forcer l'allocation de pseudo-tty. Cela peut être utilisé pour exécuter des programmes arbitraires sur écran sur une machine distante, ce qui peut être très utile, par exemple lors de la mise en œuvre de services de menu. Plusieurs -toptions forcent l'allocation de tty, même si ssh n'a pas de tty local.


J'ai essayé ssh -tl root@host hostet avec double t, mais j'ai eu le même résultat. Ps: comme cela est mentionné dans la documentation, pour me connecter avec ssh, je devrais utiliser une commande comme celle-ci ssh -l login@host host.
4m1nh4j1

Pourquoi vous connectez-vous en tant que root? et vous n'en avez pas besoin -l.
ctrl-alt-delor

J'utilise -lparce que j'ai trouvé que sans l'ajouter, je ne peux pas me connecter. Je peux le voir dans la documentation dtcsupport.gplhost.com/UserDoc/FRHow-Works-clientSSH-System (La seule page que j'ai trouvée est en français). Si je n'utilise pas -lssh, n'accepte pas mon mot de passe.
4m1nh4j1

J'ai créé un compte ssh avec " root" comme identifiant, donc j'utilise root@hostpour ssh
4m1nh4j1

Connexion en tant que root, considérée comme nuisible: la plupart des personnes concernées par la sécurité désactivent la connexion root. Vous pouvez obtenir des privilèges root une fois connecté (je recommande sudo). Si vous désactivez également l'authentification par mot de passe, forçant ainsi l'authentification par clé, vous aurez besoin de la clé et du mot de passe pour accéder à la racine.
ctrl-alt-delor
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.