Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

react-native-updated-ssh-sftp-client

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

react-native-updated-ssh-sftp-client

Updated SSH and SFTP client library for React Native.

  • 1.0.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
increased by50%
Maintainers
1
Weekly downloads
 
Created
Source

react-native-ssh-sftp

SSH and SFTP client library for React Native.

Installation

npm install react-native-ssh-sftp --save
react-native link react-native-ssh-sftp

iOS (only)

NMSSH is required for iOS.

  1. Initialize Pod:
    cd ios
    pod init
    
  2. Open Podfile and add:
    target '[your project's name]' do
    	pod 'NMSSH', '2.2.8'
    end
    
  3. Install Pod:
    pod install
    
iOS
  1. In XCode, in the project navigator, right click LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-ssh-sftp and add RNSSHClient.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNSSHClient.a to your project's Build PhasesLink Binary With Libraries
Android
  1. Open up android/app/src/main/java/[...]/MainActivity.java - Add import com.reactlibrary.RNSshClientPackage; to the imports at the top of the file - Add new RNSshClientPackage() to the list returned by the getPackages() method
  2. Append the following lines to android/settings.gradle:
    include ':react-native-ssh-sftp'
    project(':react-native-ssh-sftp').projectDir = new File(rootProject.projectDir, 	'../node_modules/react-native-ssh-sftp/android')
    
  3. Insert the following lines inside the dependencies block in android/app/build.gradle:
    compile project(':react-native-ssh-sftp')
    

Demo

example

  • This library is also used in iOS app PiHelper.




Run demo

iOS

cd example
cd ios
pod install
cd ..
npm install
react-native run-ios

Android

cd example
npm install
react-native run-android

Usage

Create a client using password authentication

import SSHClient from 'react-native-ssh-sftp';

let client = new SSHClient('10.0.0.10', 22, 'user', 'password', (error) => {
  if (error)
    console.warn(error);
});

Create a client using public key authentication

import SSHClient from 'react-native-ssh-sftp';

let client = new SSHClient('10.0.0.10', 22, 'user', {privateKey: '-----BEGIN RSA......'}, (error) => {
  if (error)
    console.warn(error);
});
  • Public key authentication also supports:
{privateKey: '-----BEGIN RSA......'}
{privateKey: '-----BEGIN RSA......', publicKey: 'ssh-rsa AAAAB3NzaC1yc2EA......'}
{privateKey: '-----BEGIN RSA......', publicKey: 'ssh-rsa AAAAB3NzaC1yc2EA......', passphrase: 'Password'}

Close client

client.disconnect();

Execute SSH command

var command = 'ls -l';
client.execute(command, (error, output) => {
  if (error)
    console.warn(error);
  if (output)
    console.warn(output);
});

Shell

Start shell:
  • Supported ptyType: vanilla, vt100, vt102, vt220, ansi, xterm
var ptyType = 'vanilla';
client.startShell(ptyType, (error) => {
  if (error)
    console.warn(error);
});
Read from shell:
client.on('Shell', (event) => {
  if (event)
    console.warn(event);
});
Write to shell:
var str = 'ls -l\n';
client.writeToShell(str, (error) => {
  if (error) 
    console.warn(error);
});
Close shell:
client.closeShell();

SFTP

Connect SFTP
client.connectSFTP((error) => {
  if (error)
    console.warn(error);
});
List directory:
var path = '.';
client.sftpLs(path, (error, response) => {
  if (error)
    console.warn(error);
  if (response)
    console.warn(response);
});
Create directory:
client.sftpMkdir('dirName', (error) => {
  if (error)
    console.warn(error);
});
Rename file or directory:
client.sftpRename('oldName', 'newName', (error) => {
  if (error)
    console.warn(error);
});
Remove directory:
client.sftpRmdir('dirName', (error) => {
  if (error)
    console.warn(error);
});
Remove file:
client.sftpRm('fileName', (error) => {
  if (error)
    console.warn(error);
});
Download file:
client.sftpDownload('[path-to-remote-file]', '[path-to-local-direcotry]', (error, downloadedFilePath) => {
  if (error)
    console.warn(error);
  if (downloadedFilePath)
    console.warn(downloadedFilePath);
});

// Downlowd progress
client.on('DownloadProgress', (event) => {
  console.warn(event);
});

// Cancel download:
client.sftpCancelDownload();
Upload file:
client.sftpUpload('[path-to-local-file]', '[path-to-remote-directory]', (error) => {
  if (error)
    console.warn(error);
});

// Upload progress
client.on('UploadProgress', (event) => {
  console.warn(event);
});

// Cancel upload:
client.sftpCancelUpload();
Close SFTP:
client.disconnectSFTP();

Credits

  • iOS SSH library: NMSSH
  • Android SSH library: JSch

Keywords

FAQs

Package last updated on 25 Oct 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc