I’m trying to transfer a file from an Ionic iOS app to an AWS EC2 server running CentOS. I want this to be a secure file transfer. Will this plugin https://ionicframework.com/docs/native/ftp/ create a secure connection? I would assume not, since FTP isn’t secure. But if the server uses https would that make the FTP upload secure? If not, is there a way to securely transfer a file from an ionic app to a server?
For secure FTP navigation you will need to use an SFTP connection, I found this plugin it can help you with SFTP connection, but I think you will need to change your FTP server to accept secure connections and your ftp url will turn into sftp://server:port
Thanks! Unfortunately it looks like it only supports Android. I found a plugin that not related to ionic or cordova, so it might be a little harder to integrate into my project, but hopefully it will work: GitHub - theophilusx/ssh2-sftp-client: a client for SSH2 SFTP. Ionic is pretty awesome so thank you to everyone who is working on it! Hopefully a SFTP plugin is added to Ionic soon!
Were you able to get that ssh2 sftp plugin working?? I really need this functionality for a project and would love to know if/how you got it working! Thanks so much.
Yep! I will post some info about it tonight. I ended up using a different library than the one I posted.
I found a plugin but I had trouble installing it, so I had to package it myself, then install it (link at bottom). The first part of the readme tells you how to install it. The second part is the original readme for the plugin which contains documentation for the methods. One thing to note is that it doesn’t support public key auth, so you have to use a username and password for a user on the server in order to run it. Note that I kinda dug this plugin up from nowhere and dusted it off in order to use it, so I’m not sure how secure it actually is. Its definitely no longer maintained, so you’ll have to judge for yourself if its suitable for your needs.
After you create a user on the server, you may have to do one more thing to allow username/password auth to the server. I was connecting to an Amazon EC2 server so this part might be slightly different on other servers.
- Open up the file
/etc/ssh/sshd_config
(probably need to open with sudo) - Find the
PasswordAuthentication
line and make sure it saysPasswordAuthentication yes
- Find the
ChallengeResponseAuthentication
line and make sure it saysChallengeResponseAuthentication=yes
- Save that file
- Run
sudo service sshd restart
Then you should be good to go!
The plugin is here: https://github.com/AndrewERAU/com.tlantic.plugins.ssh
Hi Andrew, thanks for your efforts on this topic. I’m currently having this same issue, and tried using cordova-sftp-plugin and your own plugin but both gave me errors while adding the plugin to my own project:
Failed to fetch plugin https://github.com/AndrewERAU/com.tlantic.plugins.ssh via registry.
Probably this is either a connection problem, or plugin spec is incorrect.
Check your connection and plugin name/version/URL.
CordovaError: Error: npm: Command failed with exit code 1 Error output:
If you know some way out of this please let me know. Thanks!
I’m mystified here. What are you trying to achieve that can’t be done with an ordinary HTTPS POST request?