-
-
Save piccaso/d963331dcbf20611b094 to your computer and use it in GitHub Desktop.
/* | |
get SSH.NET (BSD License: http://sshnet.codeplex.com/license) | |
with NuGet: | |
>Install-Package SSH.NET -Version 2013.4.7 | |
or just get the dll from here: http://j.mp/sshNet | |
*/ | |
using System; | |
using System.Collections.Generic; | |
using Renci.SshNet; /* reference needed: Renci.SshNet.dll */ | |
class Program | |
{ | |
static void Main(string[] args){ | |
// Setup Credentials and Server Information | |
ConnectionInfo ConnNfo = new ConnectionInfo("hostOrIP",22,"username", | |
new AuthenticationMethod[]{ | |
// Pasword based Authentication | |
new PasswordAuthenticationMethod("username","password"), | |
// Key Based Authentication (using keys in OpenSSH Format) | |
new PrivateKeyAuthenticationMethod("username",new PrivateKeyFile[]{ | |
new PrivateKeyFile(@"..\openssh.key","passphrase") | |
}), | |
} | |
); | |
// Execute a (SHELL) Command - prepare upload directory | |
using (var sshclient = new SshClient(ConnNfo)){ | |
sshclient.Connect(); | |
using(var cmd = sshclient.CreateCommand("mkdir -p /tmp/uploadtest && chmod +rw /tmp/uploadtest")){ | |
cmd.Execute(); | |
Console.WriteLine("Command>" + cmd.CommandText); | |
Console.WriteLine("Return Value = {0}", cmd.ExitStatus); | |
} | |
sshclient.Disconnect(); | |
} | |
// Upload A File | |
using (var sftp = new SftpClient(ConnNfo)){ | |
string uploadfn = "Renci.SshNet.dll"; | |
sftp.Connect(); | |
sftp.ChangeDirectory("/tmp/uploadtest"); | |
using (var uplfileStream = System.IO.File.OpenRead(uploadfn)){ | |
sftp.UploadFile(uplfileStream, uploadfn, true); | |
} | |
sftp.Disconnect(); | |
} | |
// Execute (SHELL) Commands | |
using (var sshclient = new SshClient(ConnNfo)){ | |
sshclient.Connect(); | |
// quick way to use ist, but not best practice - SshCommand is not Disposed, ExitStatus not checked... | |
Console.WriteLine(sshclient.CreateCommand("cd /tmp && ls -lah").Execute()); | |
Console.WriteLine(sshclient.CreateCommand("pwd").Execute()); | |
Console.WriteLine(sshclient.CreateCommand("cd /tmp/uploadtest && ls -lah").Execute()); | |
sshclient.Disconnect(); | |
} | |
Console.ReadKey(); | |
} | |
} |
is there anyway to download files pro?
This is great - thanks for posting. Been digging around in the API looking for a way to verify the host key fingerprint but not found anything so far. Is there a way to do this with SSH.NET? Thanks!
Thank you so much - I owe you one.
tnx. great example! KUDOS
You rock!! Thanks!
Many thanks for developing this. I am able to connect in one go.
It rocks! thnx for examples
Thank you. It's great example. :)
Any idea how to provide a option like StrictHostKeyChecking=no to the ssl client?
Very helpfull. Thx!
Any idea how to provide a option like StrictHostKeyChecking=no to the ssl client?
please help
Hi All,
I've been struggling with just running a basic command on a unix host.
Example what I have come up with
`Public Function CreateConnectionInfo() as ConnectionInfo
Dim connNfo as New PasswordConnectionInfo("host", "user", "pw")
Using sshClient = New sshClient(connNfo)
sshClient.Connect()
Using cmd = sshClient.CreateCommand("ls -ltr")
cmd.Execute()
MsgBox("command>" & cmd.CommandText)
MsgBox("Return Value = {0}, cmd.ExitStatus)
End Using
End Using
`
When I check the values being send I never see the PW and the host refuses the connection. I had to have my pw reset about 20 times today..lol
My wish is to use public/private keys instead of a user/pw. Which i have used/created with putty and use it everyday.
Any suggestions would be greatly appreciated.
WannaBe Programmer
MW
wow, really ty for this bro!! im going to use from a webpage ^^