2010-07-18 7 views

Répondre

1

Jetez un oeil à libssh. Avez-vous essayé de chercher une réponse vous-même? Avez-vous essayé d'utiliser certaines bibliothèques et ne les avez-vous pas utilisées?

Il est toujours préférable d'essayer de vous aider avant de chercher des documents. YMMV.

+4

Les réponses sur Stack Overflow sont des prospectus? C'était un peu dur. –

+0

Si aucune tentative préalable de trouver l'information qui est largement (et facilement) trouvé, oui. Pareil que lorsque vous êtes au travail ou n'importe où ailleurs dans la vraie vie, essayez au moins de trouver l'information avant de demander à quelqu'un d'autre de vous le donner (aka, demander un document). –

+0

Alors vous avez choisi libssh à cause du nom? – user1973385

3

Une solution simple serait d'utiliser le binaire ssh et d'appeler cela à partir de votre programme. Créer 3 tuyaux en utilisant pipe(), puis fork(), close() les points de terminaison appropriés (pas sûr si cela est nécessaire) de sorte que vous avez 2 processus avec 3 tuyaux entre eux. Sur l'enfant, dup2() les extrémités de tuyau à stdin, stdout et stderr (c'est-à-dire 0, 1, 2 de fd) et exec() la commande ssh.

Sur le processus parent, vous pouvez maintenant parler de l'autre côté. Utilisez l'authentification RSA pour vous débarrasser des mots de passe.

Mais il peut y avoir des bibliothèques à simplement se connecter, je ne sais pas ;-)

+1

lol ;-) autant que j'aime ça, je ne pense pas que ça devrait être la meilleure réponse. –

+0

Vous n'avez pas strictement besoin de fermer les points de terminaison appropriés, mais vous ne pouvez pas lire à partir d'une fin d'écriture et certains enfants n'auront pas besoin d'accéder à certains points de terminaison, il n'y a donc aucune raison de ne pas le faire. – ocket8888