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. Hadoop 初始化系统

    hadoop namenode -format 或者 hdfs namenode -format 2.执行hadoop sbin 目录下的 start-dfs.sh start-yarn.sh3.查看 ...

  2. golang 打印变量类型

    fmt.Println("type:", reflect.TypeOf(err.Error()))

  3. go语言中通过http访问需要认证的api

    func main() { //生成client 参数为默认 client := &http.Client{} //生成要访问的url url := "https://api.XXX ...

  4. fiddler抓web请求

    原理 fiddler抓包原理 fiddler 调试器注册到操作系统因特网服务中,系统所有的网络请求都会走fiddler的代理,所以fiddler才能抓包. Debug traffic from any ...

  5. js 放在公共头部 子页面引用js 失效问题

    先回忆一下二者的区别(对于此篇文章而言,二者在用法上没有区别) jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含 @ include是先把文件包含就来,然后统 ...

  6. iOS - OC - 网络请求 - 中文转码

    #import "ViewController.h" @interface ViewController () @end @implementation ViewControlle ...

  7. 【转】HttpRuntime的认识与加深理解

    原文:http://www.cnblogs.com/whtydn/archive/2009/10/16/1584418.html   下面最先介绍HttpRuntime的Web.config里的配置 ...

  8. 【SQL模板】三.插入/更新 数据模板TSQL

    ---Name: 插入/更新 数据模板.sql ---Purpose: 用于更新 数据库中 历史数据 或 插入 新数据 的脚本模板 ---Author: xx ---Time: 2015-12-18 ...

  9. web项目传classes目录项目正常,打包成jar不能运行。

    笔者最近使用tomcat9,由于工作洁癖,盯上了tomcat启动日志里的"No TLD files were found in"字样,如下 15-Sep-2017 02:19:09 ...

  10. Codeforces Recycling Bottles 模拟

    C. Recycling Bottles time limit per test: 2 seconds memory limit per test: 256 megabytes input: stan ...