Quantcast
Channel: Rebex Q&A Forum - Recent questions and answers
Viewing all articles
Browse latest Browse all 3860

Answered: SSH private key + SFTP + Powershell... Any examples?

$
0
0

There are two samples on our blog, and I'm adding additional samples here.

This connects to our demo server, lists the root directory contents and downloads the readme.txt file:

# load Rebex SFTP assemblies
Add-Type -Path "c:\Program Files (x86)\Rebex Components 2017 R4.1\bin\net-4.0\Rebex.Common.dll" 
Add-Type -Path "c:\Program Files (x86)\Rebex Components 2017 R4.1\bin\net-4.0\Rebex.Networking.dll" 
Add-Type -Path "c:\Program Files (x86)\Rebex Components 2017 R4.1\bin\net-4.0\Rebex.Sftp.dll" 

# create an instance of Sftp object
$sftp = New-Object Rebex.Net.Sftp

# omit this if logging is not needed (or use FileLogWriter to log into a file)
$sftp.LogWriter = New-Object Rebex.ConsoleLogWriter([Rebex.LogLevel]::Info)

# connect and authenticate
$sftp.Connect("test.rebex.net")
$sftp.Login("demo", "password") 

# display contents of the root directory (use GetList to get a parsed form)
Write-Output $sftp.GetRawList("/")

# download a file into the current directory
$sftp.Download("/readme.txt", ".")

# disconnect from the server and dispose the sftp object
$sftp.Disconnect()
$sftp.Dispose()

To authenticate using a private key instead of a password, use create an instance of SshPrivateKey and use another overload of the Login method:

...
$key = New-Object Rebex.Net.SshPrivateKey("C:\MyData\Key.ppk", "keypassword")
$sftp.Login("username", $key) 
...

And to use both a key and password, use this:

...
$key = New-Object Rebex.Net.SshPrivateKey("C:\MyData\Key.ppk", "keypassword")
$sftp.Login("username", "password", $key) 
...

Most methods of the Sftp object are simple-to-use and quite suitable to be called from PowerShell scripts - converting the sample code from our features pages should be quite simple.


Viewing all articles
Browse latest Browse all 3860

Trending Articles