Ⅰ 如何用C#实现ssh登录主机
1. 什么是SSH
SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。SSH是每一台linux电脑的标准配置,但是在windows系统中默认是没有安装SSH的,需要安装SSH相关服务端软件,比如FreeSSHD。
2. SSH可以用来做什么
SSH可以用于远程登录主机,登录方式通常有两种:口令登录和公钥登录
一:口令登录:通过在服务端设定的用户名和密码进行登录,每次都登录都需要填写密码
二:公钥登录:通过一对公钥和私钥登录,公钥存放在服务端私钥存放在客户端,在登录时服务端向客户端发生一个随机字符串,然后客户端通过私钥先进行加密然后发生到服务端,在服务端接受和用公钥进行解密,然后匹配是否正确解密来验证登录,注意:存在在服务端的公钥名称和用户名一致,已区分不同用户不同的公钥;这样每次就可以直接用公钥登录省去了密码的繁琐。
SSH可以用户服务端和客户端之间双向文件传输
3. SharpSSH与SSH服务端FreeSSHD
SharpSSH是一个用C#实现的SSH客户端组件,用户可以根据需要修改使用改组件已满足自己的需求。
注意:在官网下载SharpSSH会因为主机为安装Mono而出现Mono.Security.dll的引用错误,只需要下载Mono.Security.dll重新引用即可。
我在Windows7 VS2012的环境下测试官网下载的SharpSSH项目升级成功,解决方案如下:
其中有两个项目:Examples,SharpSSH顾名思义,Examples是使用示例,SharpSSH就是真正的实现项目,设置Examples为启动项,运行效果如下:
可以看到,示例为我们提供了16个功能项,再次我们需要测试远程登录和文件传输,使用第13, 和16项测试即可,同时也会用到第5项生成公钥私钥对;
客户端SharpSSH已经实现了,接下来在Windows系统中就需要安装客户端了,这里选择FreeSSHD作为客户端。下载下来直接下一步下一步安装,安装完成后运行会提示你是否生成Key选择是即可,同时会安装FreeSSHDService服务,选择关闭该服务;
此时可以看到支持telnet和SSH服务,且都关闭,到此步客户端服务端都已经准备就绪,下面就进行我们的登录测试和文件传输测试吧;
4. 远程登录执行命令
上面提过,登录有两种方式,口令登录和公钥登录,先介绍口令登录吧;
口令登录:即在服务端freeSSHd上创建一个用户名和密码,使用此密码口令登录
首先在freeSSHd上的Users选项中点击Add弹出添加用户界面,然后Login填写用户名,authorization选择Password stored as SHA1 hash 然后填写密码和重复密码,勾选该用户可用服务,如下图,创建了用户名和密码都是test:
然后我们选择SSH项,将Use new console engine项的勾选去掉已防止中午乱码,如图:
选择确定即可创建成功,然后回到主界面我们打开SSH服务
如上图所示即表示SSH服务已经成功开启;但是有可能会错误:常见原因是地址已使用,这是端口号22已经被使用造成的,关闭该端口的进程即可。
接下来我们运行我们的sharpSSH进行登录测试吧。
我们选择第13项,然后输入远程地址I(由于服务端就在本机所以是127.0.0.1),然后不选择公钥登录,然后输入密码,连接成功,执行date命令查询当前时间:
现在我们测试公钥登录:
公钥登录需要先生成公钥私钥对,我们选择第5项KeyGen来生成,命名为test(和用户名一致),Sig Type选择dsa, 然后Comment为空弹出窗口输入passphrase我们不输入直接选择ok,这样就在sharpSSH的bin\Debug目录下生成了我们的test的公钥私钥两个文件。
Ⅱ windows怎么开ssh服务
1. ssh简介以及本例的应用场景
① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c: est.bat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2. ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3. ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/.ssh/id_rsa为私有密钥,/root/.ssh/id_rsa.pub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:Program FilesfreeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/.ssh/id_rsa.pub文件中的内容拷贝到c:Program FilesfreeSSHdxut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh [email protected] "c: est.bat"
这条命令将执行服务器端的C盘下的test.bat文件,并把结果返回,整个操作不需输入密码。
4. ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:http://www.chiark.greenend.org.uk/~sgtatham/putty/
各种客户端的比较:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients
在Putty主页,我们下载putty.zip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plink.exe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用putty.zip中附带的PUTTYGEN.exe生成。
启动PUTTYGEN.exe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_key.ppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见【ssh客户端的设置(Linux)】。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_key.ppk [email protected] c: est.bat
(此时将执行服务器端的c: est.bat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry… ”提示,我们选择确定就可以了,以后就不会再出现了。
Ⅲ windows机器 cmd命令下能否使用什么命令通过ssh连接到远程lin
Windows提供了一些远程管理功能,像使用WindowsPowerShell,ServerManager.exe,或一个telnet服务器,但它并没有提供原生的SSH(安全外壳)或SecureFTP访问。不过,好消息是它是相当容易成立SSH和安全FTP(SFTP)服务器,让您可以安全地访问命令提示符和文件的电脑或远程服务器示例使用的情况下,包括故障排除,维修,或转移/共享文件,当你走出公室。你甚至可以决定设置它做SSH隧道,以确保你的Wi-Fi流量使用热点时。虽然有很多SSH和SFTP服务器可供选择,在这里我们将讨论freeSSHd以下。freeSSH中是一个SSH和Telnet服务器,支持普通的shell或命令行SSH访问,基于SSH的SFTP访问(使用命令行或GUI客户端),基于SSH隧道(VPN一样的功能)。freeSSH中很容易通过一个典型的Windows安装程序安装。做虽然确保创建上面的安装结束时,因为它们所需的加密的私钥。配置服务器一旦你打开freeSSHd以下,你会发现一个系统托盘图标,你可以单击“打开服务器设置。如果你没有在安装过程中创建的私钥SSH选项卡并单击“新建”的关键()。否则,你应该做的,为了获得服务器运行的是创建一些用户通过点击“用户”选项卡。为了使你的SSH服务器更加安全,考虑强迫用户进行身份验证,通过自己的密码加上一个私钥,他们必须在他们的PC连接时,在他们的客户端程序配置。如果你知道将远程连接到服务器-如果它总是会从另一间公室,有一个静态IP,例如-你也可以考虑远程IP地址白名单,以提高服务器的安全性。要做到这一点,只需点击“主机限制”选项卡,并输入IP地址。如果您打算使用SFTP连接来传输文件,单击SFTP选项卡,为用户指定一个默认路径。测试服务器在打开你的防火墙上的SSH端口,可以测试服务器从客户端程序连接同一台PC上使用本地主机的主机地址或IP地址的PC。您可以使用标准的SSH和SFTP客户端,如腻子,WinSCP赋予或FileZilla的。打开防火墙为了从其他电脑SSH端口22必须打开Windows防火墙或任何其他你可能已经安装了个人防火墙访问SSH服务器。您可能已提醒有关允许或禁止访问,当你第一次运行freeSSH中。如果没有,你就无法通过SSH连接其他电脑,仔细检查防火墙的设置。如果你打算通过互联网连接到SSH服务器,路由器和网络PC连接必须被配置为允许访问。在路由器中,您可以使用虚拟服务器或端口转发设置打开SSH端口22和前瞻性的PC主机的SSH服务器的IP地址的流量。
Ⅳ win7系统使用freeSSHd创建服务器,可以连接自己的数据库吗
正常情况下,linux 下 sftp 默认都会安装的, Windows 就没有了。以下就是安装过程
首先下载 并且只下载freeSSHd.exe就可以了。
安装:一路默认就可以了。
设置:(网上资料不全,遇到的问题搜了好久也没个详细的信息,所以写篇博客记录)
特别说明一下,这里设置为密码登陆方式,而不用密匙方式。
1 Users:
此外:
sftp [email protected]
[email protected]'s password:
Permission denied, please try again.
[email protected]'s password:
Permission denied, please try again.
密码明明输入正确的,可能还会遇到上面的情况, rm -rf ~/.ssh 也不行的话, 就是因为 windons 上运行 freesshd 没以管理员权限运行了哦!!!
补充:Permission
denied, please try again. , 有时候上面情况试过了,还会出现这样的话,看一下管理员权限默认起来的 ssh ip
是不是对的?如果不对,然后自己改动后点击应用是没有什么卵用的,还是连不上(奇葩bug真多)。这个时候呢,改到你需要的ip后,点击ok最小化界面,
然后
unload freesshd, 再重新管理员权限启动,注意起来后默认的ssh ip 一定要是你需要的。
Ⅳ windows怎么开ssh服务
1、首先运行OpenSSH的安装程序 点击窗口下一步 。
Ⅵ 求问怎么在自己电脑上搭建ssh服务器程序
ssh服务器的安装(Windows)。
ssh服务器软件有许多中,这里使用的是免费的freeSSHd。
①首先从官方站点下载软件并安装。
②安装完成后进入配置界面(Server Status),确认SSH server正在运行状态。
③进入Users界面,设定一个访问的用户账户(比如xut)。
这里建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)。
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等)。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
Ⅶ 如何使用ssh登陆windows服务器
1. ssh简介以及本例的应用场景
① ssh的简介
SSH是一个用来替代TELNET、FTP以及R命令的工具包,主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写形式。通过使用SSH,你可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
② 本例的应用场景
用户在client(Linux)上通过ssh远程执行server(Windows)上的命令,比如c:\test.bat
注:Linux版自带ssh Server且默认启动,具体设置方法请参见google。
2. ssh服务器的安装(Windows)
ssh服务器软件有许多中,我们这里使用的是免费的freeSSHd。
① 首先从官方站点下载软件并安装(http://www.freesshd.com/)
② 安装完成后进入配置界面(Server Status),确认SSH server正在运行状态
③ 进入Users界面,设定一个访问的用户账户(比如xut)
这里我们建立一个叫xut的用户,认证有3种方式可以选择。从以后通过ssh运行命令的方便(无需输入密码)考虑,我们选择Public key认证方式。选择Password方式的话,每次访问需要输入密码,此种方式较为繁琐而且安全性不高。然后开放其Shell权限。
④ 进入认证界面,确认Public key认证方式属于激活状态(选择Allowed或Required)
此时ssh服务器端的基本设置已经OK,可进一步进行更加详细的设置(比如访问限定等),此处不再介绍。
注意:服务器端如果有防护墙时应该开发TCP 22号端口最为ssh连接使用。
3. ssh客户端的设置(Linux)
由于我们的客户端采用的是Linux,所以不用安装客户端软件,系统自带的就有。
我们需要在Linux上创建一个共有和私有的密钥对,私有密钥放到客户端(Linux)上,共有密钥放到服务器端(Windows)上。在Linux上通过ssh-keygen命令来创建。
[root@localhost ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): [直接回车]
Enter passphrase (empty for no passphrase): [直接回车]
Enter same passphrase again: [直接回车]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
4d:dd:48:af:76:c2:ba:a8:bc:20:f3:28:1d:6a:28:53
其中,/root/.ssh/id_rsa为私有密钥,/root/.ssh/id_rsa.pub为共有的密钥。
此时,需要把共有密钥放到服务器端(Windows)进行保存,以便于服务器端进行安全检查。
我们通过认证界面找到存放共有密钥的地址(Public key folder)。
如上图所示,然后在c:\Program Files\freeSSHd目录下创建以登录用户名为名字的文本文件,此处举例为xut文件。并将/root/.ssh/id_rsa.pub文件中的内容拷贝到c:\Program Files\freeSSHd\xut文件中。
至此,客户端和服务器端的密钥设置已经完成,可以通过如下命令进行远程的命令执行。
ssh [email protected] "c:\test.bat"
这条命令将执行服务器端的C盘下的test.bat文件,并把结果返回,整个操作不需输入密码。
4. ssh客户端的设置(Windows)
由于Windows不附带ssh的客户端和服务器端,我们这里找一个免费的客户端软件PuTTY。
PuttY主页:http://www.chiark.greenend.org.uk/~sgtatham/putty/
各种客户端的比较:http://en.wikipedia.org/wiki/Comparison_of_SSH_clients
在Putty主页,我们下载putty.zip(含除了PuTTYtel以外的所有文件),然后解压会发现一个叫plink.exe的文件,这就是我们的ssh客户端命令行软件。
我们首先要成一个共有和私有的密钥对,使用putty.zip中附带的PUTTYGEN.exe生成。
启动PUTTYGEN.exe后可以见到下图界面,点击[Generate]即可生成所需密钥对。
注意:由于是采用随机算法生成,需要不停地在对话框上移动鼠标进度条才会增加,否则将保持不变。
鼠标在这里不停移动
密钥生成完毕后,可以把私有密钥进行保存,为了登录简单起见不对私钥进行加密,提示没有passphrase选择忽略即可。假设我们这里把私钥保存为pri_key.ppk。
我们把公钥放在freeSSHd端(ssh服务器端)进行保存,具体保存方法参见【ssh客户端的设置(Linux)】。
在Windows客户端,执行如下命令进行ssh连接,并不需要输入密码即可通过密钥进行自动认证。
plink -i pri_key.ppk [email protected] c:\test.bat
(此时将执行服务器端的c:\test.bat脚本。)
注:第一次连接时将出现“The server's host key is not cached in the registry…
Ⅷ 在windows环境下通过帐号密码SSH登录堡垒机,之后telnet到网络设备,通过命令交互对设备
1. 什么是SSH
SSH 为建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。SSH是每一台Linux电脑的标准配置,但是在windows系统中默认是没有安装SSH的,需要安装SSH相关服务端软件,比如FreeSSHD。
2. SSH可以用来做什么
SSH可以用于远程登录主机,登录方式通常有两种:口令登录和公钥登录
一:口令登录:通过在服务端设定的用户名和密码进行登录,每次都登录都需要填写密码
二:公钥登录:通过一对公钥和私钥登录,公钥存放在服务端私钥存放在客户端,在登录时服务端向客户端发生一个随机字符串,然后客户端通过私钥先进行加密然后发生到服务端,在服务端接受和用公钥进行解密,然后匹配是否正确解密来验证登录,注意:存在在服务端的公钥名称和用户名一致,已区分不同用户不同的公钥;这样每次就可以直接用公钥登录省去了密码的繁琐。
SSH可以用户服务端和客户端之间双向文件传输
3. SharpSSH与SSH服务端FreeSSHD
SharpSSH是一个用C#实现的SSH客户端组件,用户可以根据需要修改使用改组件已满足自己的需求,SharpSSH介绍和组件下载网站:http://sharpssh2.codeplex.com/,也可以在这里下载。
注意:在官网下载SharpSSH会因为主机为安装Mono而出现Mono.Security.dll的引用错误,只需要下载Mono.Security.dll重新引用即可。
我在Windows7 VS2012的环境下测试官网下载的SharpSSH项目升级成功,解决方案如下:
其中有两个项目:Examples,SharpSSH顾名思义,Examples是使用示例,SharpSSH就是真正的实现项目,设置Examples为启动项,运行效果如下:
可以看到,示例为我们提供了16个功能项,再次我们需要测试远程登录和文件传输,使用第13, 和16项测试即可,同时也会用到第5项生成公钥私钥对;
客户端SharpSSH已经实现了,接下来在Windows系统中就需要安装客户端了,这里选择FreeSSHD作为客户端,官网下载地址:http://www.freesshd.com/?ctt=download或这里:http://download.csdn.net/detail/dangercheng/6804861
下载下来直接下一步下一步安装,安装完成后运行会提示你是否生成Key选择是即可,同时会安装FreeSSHDService服务,选择关闭该服务;
此时可以看到支持telnet和SSH服务,且都关闭,到此步客户端服务端都已经准备就绪,下面就进行我们的登录测试和文件传输测试吧;
4. 远程登录执行命令
上面提过,登录有两种方式,口令登录和公钥登录,先介绍口令登录吧;
口令登录:即在服务端freeSSHd上创建一个用户名和密码,使用此密码口令登录
首先在freeSSHd上的Users选项中点击Add弹出添加用户界面,然后Login填写用户名,authorization选择Password stored as SHA1 hash 然后填写密码和重复密码,勾选该用户可用服务,如下图,创建了用户名和密码都是test:
然后我们选择SSH项,将Use new console engine项的勾选去掉已防止中午乱码,如图:
选择确定即可创建成功,然后回到主界面我们打开SSH服务
如上图所示即表示SSH服务已经成功开启;但是有可能会错误:常见原因是地址已使用,这是端口号22已经被使用造成的,关闭该端口的进程即可。
接下来我们运行我们的sharpSSH进行登录测试吧。
我们选择第13项,然后输入远程地址I(由于服务端就在本机所以是127.0.0.1),然后不选择公钥登录,然后输入密码,连接成功,执行date命令查询当前时间:
现在我们测试公钥登录:
公钥登录需要先生成公钥私钥对,我们选择第5项KeyGen来生成,命名为test(和用户名一致),Sig Type选择dsa, 然后Comment为空弹出窗口输入passphrase我们不输入直接选择ok,这样就在sharpSSH的bin\Debug目录下生成了我们的test的公钥私钥两个文件。如图:
生成了公钥test.pub和私钥test两个文件。然后将公钥文件test.pub放到freeSSHd指定的公钥文件夹目录:
也就是C:\Program Files\freeSSHd\这个目录下,并去掉后缀.pub,然后修改test用户的authorization选择Public Key如图:
接下来再测试:
5. 传输文件
首先我们修改服务端文件位置:
这样我们服务端的默认位置就是我们在freeSSHd下面自己添加的sftpFile的目录了,我们在里面放一个图片test.jpg,现在我们要将这个图片传到我们sharpSSH的目录页就是bin\Debug目录下并改名为testClient.jpg:
可以看见传输的速度还是很快的93k0秒完成,有兴趣的可以试试大文件的传输,到此关于SSH的登录和文件传输的测试完毕,当然SSH还有其他的很多很多的强大功能,这里不能一一列举测试,有兴趣自己取试试。