J'essaie de me connecter à la première machine avec ssh, puis de me connecter à une autre machine deux avec ssh. Mais obtenez cette erreur:
ssh [email protected] 'ssh [email protected]'
stdin: is not a tty
Lors de la connexion à un shell, l'hôte distant suppose que la connexion est effectuée par un utilisateur humain. Par conséquent, il est raisonnable de s'attendre à ce qu'ils contrôlent standard in sur le client. C'est-à-dire que l'utilisateur donne une entrée sur un terminal via le clavier. Si l'hôte distant détecte que l'utilisateur n'est pas humain (car l'entrée n'est pas un terminal - tty, mais un autre processus), il peut avertir l'utilisateur de cette condition inattendue.
Une démonstration de la mauvaise conduite discutée et comment l'éviter (man ssh
et recherchez -t pour une explication plus approfondie).
$ ssh -t genja.org 'ssh raptor.lan hostname\; uptime'
Host: genja.lan
raptor
21:17:27 up 3 days, 15 min, 1 user, load average: 0.00, 0.00, 0.00
Connection to genja.org closed.
$ ssh genja.org uptime
Host: genja.lan
21:17:43 up 12 days, 17:40, 1 user, load average: 0.30, 0.08, 0.02
... et l'erreur:
$ ssh genja.org 'ssh raptor.lan hostname\; uptime'
Host: genja.lan
Permission denied (publickey,keyboard-interactive).
Vous voudrez peut-être faire un tunnel à la place:
ssh -L 4444:raptor.lan:22 genja.org
Ensuite, sur un autre terminal:
ssh -p 4444 localhost will give you a conenction straight to "raptor.lan"
Utilisez des adresses IP telles que 192.168.0.11 si les alias DNS ne sont pas configurés sur l'extrémité distante.