Question

Nous avons besoin de s'éloigner du traditionnel FTP pour des raisons de sécurité (il transmet les mots de passe non crypté).Je suis audience de SSH présenté comme une solution évidente.Toutefois, j'ai été conduite à partir d'un FTP ASP.NET l'interface du programme pour automatiser mon site web développement, qui est maintenant tout à fait très web-enabled processus.

Quelqu'un peut-il recommander une méthode sécurisée de transfert de fichiers qui dispose d'une interface de programme que je peux conduire à partir de ASP.NET?

Était-ce utile?

La solution

la question a trois subquestions:

1) choisir le protocole de transfert sécurisé

La version sécurisée de vieux FTP existe - il appelé FTP/SSL (plain old FTP sur SSL cryptée canal).Peut-être vous pouvez continuer à utiliser votre ancienne infrastructure de déploiement - il suffit de vérifier s'il prend en charge le FTPS ou FTP/SSL.

Vous pouvez consulter les détails sur le protocole FTP, FTP/SSL et SFTP différences au http://www.rebex.net/secure-ftp.net/ page.

2) SFTP ou FTP/SSL server pour Windows

Lorsque vous choisissez d'utiliser SFTP ou FTPS vous devez déployer le serveur approprié.Pour FTP/SSL, nous utilisons la Gene6 (http://www.g6ftpserver.com/) sur plusieurs serveurs sans problèmes.Il y a beaucoup de FTP/SSL serveurs Windows donc utiliser ce que vous voulez.La situation est un peu plus compliqué avec le serveur SFTP pour Windows - il y a seulement quelques implémentations de travail.Le Bitvise WinHTTPD semble assez prometteurhttp://www.bitvise.com/winsshd).

3) Transfert de Fichiers par Internet Composant pour ASP.NET

La dernière partie de la solution sécurisée de transfert de fichiers à partir de asp.net.Il y a plusieurs composants sur le marché.Je recommande l' Rebex De Transfert De Fichiers Pack - il prend en charge de FTP (et FTP/SSL) et SFTP (SSH File Transfer).

De code suivant montre comment télécharger un fichier sur le serveur via SFTP.Le code est pris à partir de notre Rebex SFTP page du tutoriel.

// create client, connect and log in 
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);

// upload the 'test.zip' file to the current directory at the server 
client.PutFile(@"c:\data\test.zip", "test.zip");

// upload the 'index.html' file to the specified directory at the server 
client.PutFile(@"c:\data\index.html", "/wwwroot/index.html");

// download the 'test.zip' file from the current directory at the server 
client.GetFile("test.zip", @"c:\data\test.zip");

// download the 'index.html' file from the specified directory at the server 
client.GetFile("/wwwroot/index.html", @"c:\data\index.html");

// upload a text using a MemoryStream 
string message = "Hello from Rebex SFTP for .NET!";
byte[] data = System.Text.Encoding.Default.GetBytes(message);
System.IO.MemoryStream ms = new System.IO.MemoryStream(data);
client.PutFile(ms, "message.txt");

Martin

Autres conseils

sharpssh implémente l'envoi de fichiers via scp.

Nous avons utilisé une variante de cette solution dans le passé, qui utilise SSH Usine pour .NET

La traditionnelle sécurisée de remplacement pour FTP est SFTP, mais si vous avez suffisamment de contrôle sur les deux points de terminaison, vous pourriez envisager de rsync au lieu de cela:il est hautement configurable, sécurité vient en lui indiquant d'utiliser ssh, et de loin plus efficace pour garder deux endroits dans la synchronisation.

G'day,

Vous pourriez aimer regarder ProFPD.

Fortement personnalisable.Basé sur Apache structure du module.

À partir de leur site web:

ProFTPD est née de la volonté d'avoir un accès sécurisé et configurable serveur FTP, et d'une importante admiration de du serveur web Apache.

Nous utilisons notre version adaptée pour les grandes entreprises de transfert de contenu web.Généralement de 300 000 mises à jour par jour.

HTH

cheers,

Rob

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top