SSH/SFTP/SCP For Matlab (v2)

Improved Matlab interface for SSH2/SFTP/SCP (supports public key) using the Ganymed-SSH2 javalib.
Updated 20 Aug 2018

View License

Editor's Note: This file was selected as MATLAB Central Pick of the Week

A new Matlab interface for using the Ganymed-SS2 Java library. Renamed commands are improved for limitations of existing Matlab/SSH2 codebase (see inspired submissions) using a straightforward command list.
If you need to access a remote machine from your Matlab session (for near-real time data transfer etc...) this set of functions allows you to send commands and obtain the return values. SFTP and SCP file transfer functions are included. Supports public key authentication and improved multiple command support.
This requires the open-source Ganymed SSH-2 for Java that is freely available and automatically included in the zip file. For SFTP-GET, one must use the included custom Ganymed SSH-2 Java library that is compatible with Matlab.

See ssh2-examples.m for documentation.

FOR SUPPORT, PLEASE CONTACT AUTHOR DIRECTLY instead of posting to "Comments and Ratings" first. Helpful information or comments can be posted after communication to ensure useful information for others instead of a ballooning of failed SSH/SFTP/SCP connection info in the comments.

#1 Problem with connections is software firewall on Matlab machine preventing Java from making connections. If you're able to connect with the same machine, please check for this.
#2 Problem is supported authentication on ssh-server. Please see the Ganymed-SSH2 faq for more information.

Additionally, I would love to hear about how and where you're using this submission in the comments section.

Cite As

David Freedman (2024). SSH/SFTP/SCP For Matlab (v2) (, MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2009b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes

Updated Description removing the comments about non-custom ganymed library.

Per Mathworks requirements all .zip files have been removed. The default of using the custom ganymed-ssh2 library for SFTP-GET is now on.

Bug fix for SFTP-Put

Uploaded wrong file for r5 (didn't include SSH2 library)

Includes Ganymed-250 library as it can no longer be downloaded from

- BugFix: Added filename separator check for SFTP-GET which would error when downloading a unix filename.
- Made SFTP/SCP filename lists works as 1XN or NX1 arrays.

Created a custom Ganymed SSH-2 Java library (now included in attachment) that is compatible with the way Matlab handles Java byte arrays. This is needed to support SFTP-GET functionality. Default behavior still uses official Ganymed library.

Made change to ssh2_config.m to account for Matlab's array size version dependence of the dynamic java classpath.

Bug fix that Jon Douglass identified. correct check for java library being loaded.