Comment implanter ssh dans son serveur ? - C++ - Programmation
Marsh Posté le 30-11-2005 à 17:12:05
google ssh :
http://www.commentcamarche.net/crypto/ssh.php3
dedans on voit :
http://www.ietf.org/html.charters/secsh-charter.html
pour des exemples de sources peut-etre voir :
http://www.openssh.com/
Marsh Posté le 30-11-2005 à 17:54:34
Mais si j'ai bien compris le principe, c'est carrément au niveau logiciel ? le client doit en premier lieu envoyer des data, une clé de 128 bits, pour s'identifier, le serveur lui décrypte cette clé et selon des règles il ferme ou accepte la connexion ?
Marsh Posté le 30-11-2005 à 20:57:59
J'ai beau lire mais je n'arrives pas à comprendre l'implantation du protocol dans un programmme, il y aurait pas quelque part l'algorithme détaillé étape par étape ?
Marsh Posté le 01-12-2005 à 12:30:11
tu peux garder ton code actuel et utiliser un tunnel ssh, comme ça t'as rien à coder (mal sans doute)
Marsh Posté le 01-12-2005 à 16:27:17
tu utilises un client ssh, qui travaille avec un serveur ssh. la partie cliente "forward" un port (tcp) vers le serveur.
par exemple ton telnet dialogue avec le client ssh, qui dialogue avec le serveur ssh (donc cette connexion est sécurisée), et le serveur ssh dialogue avec le serveur telnet.
Marsh Posté le 01-12-2005 à 16:27:34
bah tu fais ton appli qui communique en clair pénard, ensuite tu confies le transport à ssh, sans rien toucher à ton appli.
Marsh Posté le 01-12-2005 à 22:32:48
Mais ssh est un programme qui va encrypter les données avant de les envoyer ? et le prog client va demander à ce même prog de désencrypter avant de pouvoir traiter les data ?
J'ai de la misère à faire le lien.
Si je comprends bien ça fonctionne comme ceci ?:
serveur telnet ----> ssh.exe(data a envoyer_pour encrypter) -------> client telnet -----> ssh.exe(data recu_pour desencrypter)
Mais on dit serveur/client telnet dans le fond c'est un abus de language, car si j'encrypte mes data avec mon propre algo on ne peut appeler ça serveur telnet/client telnet ni ssh non plus ..
quoique ..un serveur reste un serveur en tant que tel, moi dans mon prog je fais un listen() sur le port 23, ce n'est pas le port qui fait qu'on appele ça "telnet" je pourrais bien écouter le port 6487 si je voudrais.. et les data je les envois avec la méthode Send de winsock, tel quel ...donc en fait il y a aucun protocol, seulement tcp/ip ..donc ce n'est pas vrai que c'est un serveur "telnet"
Je suis complètement à côté ou si je comprends bien ?
Marsh Posté le 02-12-2005 à 12:38:40
non.
client <-> transport ssh <-> serveur
le transport ssh est une connexion ssh initialisée en redirection de port.
Marsh Posté le 02-12-2005 à 14:04:04
ah ok c'est une autre connexion à part ?
Mais pour mes autres questions ?
Marsh Posté le 02-12-2005 à 15:33:45
tu cryptes rien. Tu fais tes échanges en clair tranquille, comme tu veux, avec le protocole applicatif que tu veux (mais doit rester en TCP). Une fois que ça marche, tu tunnelles.
Marsh Posté le 02-12-2005 à 17:20:01
Oui mais je comprends pas
Comment ça tunelle
Ça me prendrait un exemple de code simple en pseudo-code ça serait suffisant ..
Mais pour ma question concernant le fait d'appeler ça telnet ou non j'ai raison ou non ?
Marsh Posté le 02-12-2005 à 18:20:16
re-explication de l'explication :
Client --> ssh.exe (cryptage) --> ~~~~~LAN (secure )~~~~~ --> ssh.exe(décryptage) --> Serveur
c'est plus clair ?
regarde les exemple de tunneling ssh sur internet tu va vite saisir
Marsh Posté le 02-12-2005 à 18:54:36
Ok la c'est clair
C'est donc bel et bien un programme externe, c'est comme ce que j'avais dessiné plus haut sauf que moi je pensais que les data sécurisé était envoyé au client telnet et ensuite au ssh.exe pour le décrypter, mais c'est plutôt envoyé à ssh.exe donc ça veut dire qu'il y a un autre programme qui sert de serveur client .. de là l'expression de tunnel ...
Je vois, je vois ..hmmm...alors pourquoi ont dit que c'est "au dessus" de la couche tcp/ip ?
Marsh Posté le 02-12-2005 à 20:41:35
Ok, et bien j'ai souvent lu ça dans des textes, bon c'est pas grave
Marsh Posté le 02-12-2005 à 21:38:05
ok
mais dites-moi ..mon serveur telnet ne s'occupe pas de la connexion ,après qu'elle ait été établi, je démarre un programme de bbs, qui utilise un driver fossil et c'est ce driver qui comunique avec la socket. C'est donc le driver fossil qui envoie et reçoi les data. Donc je dois faire le tunnel à partir de là ?
Marsh Posté le 02-12-2005 à 22:50:14
Taz a écrit : on le dit pas. |
Vu que TCP c'est la couche transport, que ce soit ssh ou son application, c'est dans la couche applicative du modèle OSI, non ? (par contre son appli n'est pas "au-dessus" de ssh)
Marsh Posté le 03-12-2005 à 08:43:39
OSI ça pue. L'appli et ssh sont au même niveau. C'est une sorte de pipe si tu veux.
Marsh Posté le 30-11-2005 à 16:24:00
Lorsqu'on se programme un serveur telnet, dabord je fais un listen() ensuite je reçois et envoie des data. Mon programme fait déjà tout cela. Mais bon il parait que ce n'est pas sécurisé.
J'ai beau lire sur le ssh, ça ne me dit pas comment implanter ça dans mon prog, tout ce que je trouves c'est des programme serveur qui ont déjà ssh, mais moi je voudrais le mettre dans mon propre programme
Quelqu'un aurait une idée comment il faut faire