Si j'ai déjà mis la clé publique à l'hôte distant. Donc, il n'y a pas de problème d'entrée de mot de passe.
Je souhaite connecter une machine distante et exécuter Par exemple: P> écran -r code> immédiatement. Y a-t-il un moyen d'y parvenir? p> ssh example.com ; screen -r
9 Réponses :
Retirez le point-virgule de votre exemple:
ssh -t example.com "screen -r -X ls"
Il retourne: doit être connecté à un terminal. code>. Ce n'est pas mon veux. Je veux continuer à utiliser cet hôte après écran -r code>.
Je suppose que par 'continuer à utiliser cet hôte', que vous voulez dire que vous souhaitez émettre une chaîne de commandes. Voir Modifier à ma réponse pour cela. Comme je l'ai déjà dit, écran -r code> ne fonctionnera tout simplement pas sans une borne attachée, et vous n'aurez pas de terminal si vous exécutez des commandes distantes via SSH.
@Perception, "Vous n'aurez pas de terminal si vous exécutez des commandes distantes via SSH" n'est pas vraie - voir ma réponse pour clarification.
Peut-être que j'aurais dû clarifier ma déclaration avec "par défaut". Je garde ma réponse aussi générique que possible depuis que ce n'est pas tout à fait clair ce que l'OP veut vraiment accomplir.
Merci d'avoir répondu. Mon objectif: tous les jours, je me connecte à l'hôte distant et à faire de nombreux travaux, pas une commande spécifique en série. Cependant, chaque fois que j'ai besoin de 1) ssh dans l'hôte. 2) Tapez la commande écran -r code>. Je me demande si je peux faire ces deux choses dans un entrer code> appuyer sur la touche.
http://unixhelp.ed.ac.uk/cgi/ Man-cgi? SSH + 1 P>
SSH [-1246AACFGKMNNQSTTVVXXY] [-B BIND_ADDRESS] [-C CIPHER_SPEC] [-D [BIND_ADDRESS:] port] [-e Escape_char] [-f Configfile] [-I Identity_file] [-L [Bind_Address:] Port: hôte: hostport] [-l login_name] [-m Mac_Spec] [-O CTL_CMD] [-O Option] [-P port] [-R [BIND_ADDRESS:] Port: hôte: hostport] [-s ctl_path] [-W tunnel: tunnel] [Utilisateur @] nom d'hôte [commande] p> blockQuote>
commande est le dernier paramètre. ; Indique à la coque locale que SSH et écran sont deux commandes différentes, et non que l'une est une commande et l'autre est un argument. P>
Je ne sais pas si cela fonctionnera ou non, car l'écran est un programme étrange pour le faire avec, mais ssh blah.com 'écran -r' em> est la syntaxe correcte. P>
Cela fonctionnera
ssh root@something 'ls -l'
C'est faux. Les backtsks exécuteront la commande ls -l i> puis prenez la sortie de cela et mettrez-la comme une dispute à ssh root @ quelque chose i>
Oups! Faute de frappe! Je voulais dire 'et pas `. Corrigée
Ce n'est pas mon veux. Je veux continuer à utiliser cet hôte après écran -r code>.
Essayez d'utiliser des guillemets simples:
ssh example.com 'screen -r'
Cela ne fournit pas de réponse à la question. Critiquer ou demander des éclaircissements d'un auteur, laissez un commentaire sous leur poste.
@Samikuhmonen OMS / Que répondez-vous?
Il suffit de mettre la commande que vous souhaitez exécuter après le nom d'hôte:
Lorsque vous exécutez une commande sur un hôte distant, SSH par défaut ne va pas allouer un pseudoterminal. Si vous exécutez un programme interactif tel que l'écran sur un hôte distant, vous devez avoir un pseudoterminal. L'option -t code> rend cela arriver. Essayez: ssh -t example.com "screen -r"
Vous pouvez également faire écho à votre commande à l'hôte distant:
Essayez celui-ci ... Vous pouvez continuer avec la commande écran -r code> ou tout autre à la machine RemoteToremote_ip. p> p>
Tout ce que vous avez à faire est de passer le drapeau ceci: p> exécute tmux avec les options spécifiées ( -à code> signifie connecter à la session nommée si je l'exécute sans le -t code>. o code>) p> -t code> i " : P> ssh -t v 'tmux attach -t o'
La commande
code> peut nécessiter un TTL. D'autres commandes fonctionnent bien, mais comme indiquées dans les réponses, vous avez besoin dehôte ssh "commandes" code>