A Secure Shell (SSH) library for .NET

觉得有用,就记录下来了

http://www.tamirgal.com/blog/page/SharpSSH.aspx

http://sourceforge.net/projects/sharpssh/?source=typ_redirect

再来个例子供参考

public partial class SSHWnd : Form
{
private SshShell ss = null;
private Stream io = null;
private SshConnectionInfo scInfo; private static byte[] buffer;
private static int bufSize = 256;
private static AsyncCallback readCallback; private delegate void addLineDelegate(string s); public SSHWnd(SshConnectionInfo scInfo)
{
InitializeComponent(); this.scInfo = scInfo;
try
{
ss = new SshShell(scInfo.Host, scInfo.User);
if (scInfo.Pass != null)
{
ss.Password = scInfo.Pass;
}
if (scInfo.IdentityFile != null)
{
ss.AddIdentityFile(scInfo.IdentityFile);
}
ss.Connect(22);
io = ss.GetStream();
buffer = new byte[bufSize];
readCallback = new AsyncCallback(OnCompletedRead);
io.BeginRead(buffer, 0, bufSize, readCallback, null);
}
catch
{
MessageBox.Show("Error!");
}
} private void OnCompletedRead(IAsyncResult ar)
{
int bytesRead = io.EndRead(ar); if (bytesRead > 0)
{
String str = Encoding.UTF8.GetString(buffer, 0, bytesRead);
this.Invoke(new addLineDelegate(addLine), new object[]{str});
io.BeginRead(buffer, 0, bufSize, readCallback, null);
}
} void addLine(string s)
{
textBox1.AppendText(s);
} private void SSHWnd_FormClosing(object sender, FormClosingEventArgs e)
{
if (ss.Connected)
{
io.Close();
ss.Close();
}
} private void button1_Click(object sender, EventArgs e)
{
if (textBox2.Text != "")
{
try
{
StreamWriter sw = new StreamWriter(io);
sw.Write(textBox2.Text);
sw.Write('\n');
sw.Flush();
}
catch
{
MessageBox.Show("Terminated yet!");
this.Close();
} textBox2.Text = "";
}
}
}

[C#]SharpSSH-一个可以使用SSH连接的.NET库的更多相关文章

  1. SSH连接virtualbox中的虚拟机

    SSH连接virtualbox中的虚拟机 SSH 与 Virtualbox 使用virtualbox创建虚拟机进行工作,可以有效地减少本机环境与工作环境之间的相互影响.但Server虚拟机的界面实在太 ...

  2. 如何使用 SSH 连接 VMWare 虚拟机中的 Ubuntu

    环境:VMWare Player 5.0.2,Ubuntu 13.10  VMWare共有3种网络连接模式,分别是: 1. bridged(桥接模式):虚拟机将直接连接到物理局域网,使自身独立于宿主机 ...

  3. Putty是一个专业的SSH连接客户端

    http://www.putty.ws/PuTTY-LinuxVPS Putty是一个专业的SSH连接客户端,当然可以用来连接Linux操作系统的VPS.下文是Putty连接工具的使用方法与详细教程, ...

  4. 如何建立一个足够安全的SSH连接?

    1 概述 使用SSH连接服务器是一件很平常的事,但是,连接是否足够安全是一个令人担忧的问题.本文从如下几个方面介绍了如何建立一个足够安全的SSH连接: 端口 协议 用户 密码 密钥对 ssh-agen ...

  5. 如何在断开ssh连接后仍然保持服务器正常运行程序

    问题描述:当SSH远程连接到服务器上,然后运行一个Python程序(bpr.py),然后把终端开闭(切断SSH连接)之后,发现该程序执行中断. 解决方法:使用nohup命令让程序在关闭窗口(切换SSH ...

  6. windows下git库的ssh连接,使用public key的方法

    在windows下进行项目开发,使用git,通过ssh方式与git库连接,而ssh方式用public key实现连接. 首先需要下载mygit,安装后使用git bash.git bash(有GUI界 ...

  7. 使用ssh config配置文件来管理ssh连接

    我本人其实及其烦使用配置文件这种东西,有时候看到巨大又复杂的配置文件,甚至复杂过代码的时候,总感觉设计配置文件的人有些本末倒置. 但是ssh这个配置文件真的非常简单好用,让我稍微体验了一次配置文件使用 ...

  8. [Linux] 如何禁止使用口令只允许使用密钥建立 SSH 连接

    1. 创建 SSH KEY 使用 ssh-keygen 生成一个密钥对,并且将公钥注册到服务器的 $HOME/.ssh/authorized_keys 文件. 2. 确保启用 SSH 公钥认证功能 查 ...

  9. rtop:一个通过 SSH 监控远程主机的交互式工具【转】

    编译自: http://www.tecmint.com/rtop-monitor-remote-linux-server-over-ssh/ rtop[1] 是一个基于 SSH 的直接的交互式远程系统 ...

随机推荐

  1. Scriptable Object

    [Scriptable Object] ScriptableObject 是一个可继承的Class,适用于存储大数据的情形.  Consider for example that you have m ...

  2. poj1417(带权并查集+背包DP+路径回溯)

    题目链接:http://poj.org/problem;jsessionid=8C1721AF1C7E94E125535692CDB6216C?id=1417 题意:有p1个天使,p2个恶魔,天使只说 ...

  3. 第十章 泛型程序设计与C++标准模板库 泛型程序设计及STL的结构

  4. gcd,扩展欧几里得,中国剩余定理

    1.gcd: int gcd(int a,int b){ ?a:gcd(b,a%b); } 2.中国剩余定理: 题目:学生A依次给n个整数a[],学生B相应给n个正整数m[]且两两互素,老师提出问题: ...

  5. hadoop应用场景总结

    原文地址 我个人接触hadoop仅仅不到一年,因为是业余时间学习,故进度较慢,看过好多视频,买过好多书,学过基本知识,搭建过伪分布式集群,有过简单的教程式开发,恰逢毕业季,面试过相关岗位,自认为路还很 ...

  6. C#控制台自定义背景颜色,字体颜色大全

    效果: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...

  7. https://www.w3.org/

    W3C   W3C By Region All Australia Österreich (Austria) België (Belgium) Botswana Brasil (Brazil) 中国 ...

  8. JVM 系列(一)类加载

    JVM 系列(一)类加载 类加载机制是指把 class 文件加载到内存,并对数据进行校验.解析和初始化,最终形成 JVM 可以直接使用的 Java 类型的过程. ClassLoader 加载一个 cl ...

  9. 连接数据库-stone

    # -*- coding:utf-8 -*- import pymysql class mysql: def __init__(self, host, port, dbuser, dbpwd, dbn ...

  10. javascript的一些札记

    1. 原来放在不同js文件里面的$(document).ready(function(){})都会执行到. 2. $(window).scroll(function(){})  窗口滚动事件. 3.  ...