2
votes

My client has been using SSH2 protocol for File transfer, recently they have decided to host their application on Cloud, they still want to make use of SSH protocol when transferring files to Cloud storage. Could anyone pls provide information regarding the SSH server setup on Cloud using Windows Azure?

Following are the

  • Host the SSH Server on VM Role in Cloud, In this case, will the other Web/Worker roles on the same cloud be ale to access the local storage of the VM role?

  • Is it possible to host a SSH FTP server using .NET components (Payed/Open Source) in a Worker role in Azure? If yes, please provide information regarding the .NET components available in Market.

  • If there is no support for SSH in Windows Azure, please let me know other alternatives for Secure File Transfer in Cloud.

My client used to run their business Unix machines in Closed network from which they performed the file transfer through SFTP to SSH FTP servers of their suppliers.

We are building some applications on Cloud for them which require them to transfer data in the form of files as input to this cloud (web role) application.

To transfer files from their Closed network and to make them available on Cloud storage, they insist that they want to still perform this using SSH FTP or using SSH Protocol.

We have struck the wall with this requirement, and following is the solutions that we have proposed to them.

Please review and provide your comments/suggestions/inputs regarding the best method to perform SSH FTP of files to Cloud Storage.

  • Host SSH Server on VM Role in Cloud, and deploy a Service in their network to transfer files from their network to the cloud. In this case, the files might be saved to the file system in the VM Role, how will we extract the file from the VM role and save it to the shared cloud storage so that other web roles running on cloud can access these files for getting input?

  • Is it possible to host a SSH FTP server using .NET components (Payed/Open Source) in a Worker role in Azure?

  • If there is no support for SSH in Windows Azure, please let me know other alternatives for Secure File Transfer using SSH to transfer files from on-premise to cloud storage.

4
Just added a comment about WinSSHD to my answer for you - read this thread - lots of useful suggestions - forums.iis.net/t/1147827.aspxStuart
Cross reference to 2014 question; 1.[] ; X.Cygwin SSH Server on Azure Windows Server 2012 R2 VM giving errors - Super User ;; superuser.com/questions/722324/…AnneTheAgile

4 Answers

2
votes

Answers on 2 out of 3:

Host the SSH Server on VM Role in Cloud, In this case, will the other Web/Worker roles on the same cloud be ale to access the local storage of the VM role?

Not the local storage, but you could let them access a shared Cloud Drive - http://blog.maartenballiauw.be/post/2010/02/02/Using-Windows-Azure-Drive-(aka-X-Drive).aspx - note that only one instance can have write access to this drive, but plenty can have read.

If there is no support for SSH in Windows Azure, please let me know other alternatives for Secure File Transfer in Cloud.

The actual upload/download of blobs can be secured with SSL, and access to your stored hosting is via your keys.

To be honest, I'd recommend looking at using blob storage for this requirement. It depends on how many files/blobs you are looking to store and how often you want to change them, but overall blob storage is pretty useful and usable.

For an intro to blobs see http://blogs.msdn.com/b/jnak/archive/2010/01/11/walkthrough-windows-azure-blob-storage-nov-2009-and-later.aspx


Is it possible to host a SSH FTP server using .NET components (Payed/Open Source) in a Worker role in Azure? If yes, please provide information regarding the .NET components available in Market.

Possibly - but I've no idea on this - there's lots of hits from http://www.bing.com/search?setmkt=en-GB&q=ssh+ftp+server+c%23

Edit - also check out this thread - http://forums.iis.net/t/1147827.aspx - you could deploy WinSSHD to a role?

0
votes

Anything is possible of course, but you have some fundamental issues to overcome to have a seamless SSH experience. The biggest issue is not installing SSH - that is cake. The issue you have to face is how to use it across instances when you have a load balancer in front. For a single instance, you should have no issues running an SSH server. All clients will connect easily. Once you have multiple servers running SSH, you get into an issue if the connection to an instance is severed and you reconnect to a different instance. It is nice to run multiple instances for SLA reasons, so this is a common issue.

Now, RDP (which is a stateful connection) works in Windows Azure because of a socket-based router that forwards traffic to the single instance you wish to communicate with. You might be able to do something similar for SSH.

Beyond the communication issue (assuming you work out SSH with load-balancing), you need to think about persistence. When you FTP something into Windows Azure, unless you are using a drive (XDrive), it is persisted only locally. You would need to think about moving those files off the VM and into permanent storage like blob storage.

So, long story short. Yes, you can do it, but it will be some work to do right.

0
votes

We just posted a how-to SSH on Azure using OpenSSH @ http://blogs.msdn.com/b/mariok/archive/2011/08/09/command-line-access-to-azure-vms-ssh.aspx

The posting includes a sample package. It will run on any role type (Web/Worker/VM) and can be combined with other packages/apps.

0
votes

if he's is not sure using the commandline on the instance he could consider installing webmin it's a great application running from your browser it lets you have control in a windows way on your virtual instance of linux I supposed.