|
@@ -1,7 +1,25 @@
|
|
|
Think this page is lacking? Help wanted! Click "Edit this page" at the bottom to begin contributing more examples.
|
|
Think this page is lacking? Help wanted! Click "Edit this page" at the bottom to begin contributing more examples.
|
|
|
|
|
|
|
|
|
|
+Getting Started
|
|
|
|
|
+=================
|
|
|
|
|
+
|
|
|
|
|
+### Run a command
|
|
|
|
|
+
|
|
|
|
|
+Establish an SSH connection and run a command:
|
|
|
|
|
+
|
|
|
|
|
+```cs
|
|
|
|
|
+using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key")))
|
|
|
|
|
+{
|
|
|
|
|
+ client.Connect();
|
|
|
|
|
+ using SshCommand cmd = client.RunCommand("echo 'Hello World!'");
|
|
|
|
|
+ Console.WriteLine(cmd.Result); // "Hello World!\n"
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
### Upload and list files
|
|
### Upload and list files
|
|
|
|
|
|
|
|
|
|
+SFTP Connection / Exchange
|
|
|
|
|
+
|
|
|
```cs
|
|
```cs
|
|
|
using (var client = new SftpClient("sftp.foo.com", "guest", "pwd"))
|
|
using (var client = new SftpClient("sftp.foo.com", "guest", "pwd"))
|
|
|
{
|
|
{
|
|
@@ -44,23 +62,44 @@ string expectedFingerPrint = "LKOy5LvmtEe17S4lyxVXqvs7uPMy+yF79MQpHeCs/Qo";
|
|
|
using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
|
|
using (var client = new SshClient("sftp.foo.com", "guest", "pwd"))
|
|
|
{
|
|
{
|
|
|
client.HostKeyReceived += (sender, e) =>
|
|
client.HostKeyReceived += (sender, e) =>
|
|
|
- {
|
|
|
|
|
- e.CanTrust = expectedFingerPrint.Equals(e.FingerPrintSHA256);
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ {
|
|
|
|
|
+ e.CanTrust = expectedFingerPrint.Equals(e.FingerPrintSHA256);
|
|
|
|
|
+ };
|
|
|
client.Connect();
|
|
client.Connect();
|
|
|
}
|
|
}
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
-### Run a command
|
|
|
|
|
|
|
+### Open a Shell
|
|
|
|
|
|
|
|
-Establish an SSH connection and run a command:
|
|
|
|
|
|
|
+```cs
|
|
|
|
|
+using (var client = new SshClient("sftp.foo.com", "user", "password"))
|
|
|
|
|
+{
|
|
|
|
|
+ client.Connect();
|
|
|
|
|
+ using ShellStream shellStream = client.CreateShellStream("ShellName", 80, 24, 800, 600, 1024);
|
|
|
|
|
+ client.Disconnect();
|
|
|
|
|
+}
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+### Switch to root with "su - root"
|
|
|
|
|
|
|
|
```cs
|
|
```cs
|
|
|
-using (var client = new SshClient("sftp.foo.com", "guest", new PrivateKeyFile("path/to/my/key")))
|
|
|
|
|
|
|
+using (var client = new SshClient("sftp.foo.com", "user", "password"))
|
|
|
{
|
|
{
|
|
|
client.Connect();
|
|
client.Connect();
|
|
|
- SshCommand cmd = client.RunCommand("echo 'Hello World!'");
|
|
|
|
|
- Console.WriteLine(cmd.Result); // "Hello World!\n"
|
|
|
|
|
|
|
+ using ShellStream shellStream = client.CreateShellStream("ShellName", 80, 24, 800, 600, 1024);
|
|
|
|
|
+ // Get logged in and get user prompt
|
|
|
|
|
+ string prompt = shellStream.Expect(new Regex(@"[$>]"));
|
|
|
|
|
+ // Send command and expect password or user prompt
|
|
|
|
|
+ shellStream.WriteLine("su - root");
|
|
|
|
|
+ prompt = shellStream.Expect(new Regex(@"([$#>:])"));
|
|
|
|
|
+ // Check to send password
|
|
|
|
|
+ if (prompt.Contains(":"))
|
|
|
|
|
+ {
|
|
|
|
|
+ // Send password
|
|
|
|
|
+ shellStream.WriteLine("password");
|
|
|
|
|
+ prompt = shellStream.Expect(new Regex(@"[$#>]"));
|
|
|
|
|
+ }
|
|
|
|
|
+ client.Disconnect();
|
|
|
}
|
|
}
|
|
|
```
|
|
```
|
|
|
|
|
|