Windows搭建sshd服务与.net的运用 电脑版发表于:2021/5/8 14:28 ![.netcore](https://img.tnblog.net/arcimg/hb/c857299a86d84ee7b26d181a31e58234.jpg ".netcore") >#Windows搭建sshd服务与.net的运用 [TOC] 下载win sshd ------------ >当前最新包连接: https://github.com/PowerShell/Win32-OpenSSH/releases/tag/v8.1.0.0p1-Beta ![](https://img.tnblog.net/arcimg/hb/ada46d75ddee44ecb01256675ebbde6f.png) 安装win sshd ------------ >下载好后将最新内容提取到`C:\Program Files\OpenSSH`目录下。 tn>注意确保二进制位置仅对SYSTEM,管理员组具有写权限。经过身份验证的用户应该并且仅具有读取和执行。 >随后在Powershell控制台转到`openssh`目录下,运行以下命令 ```bash powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1 ``` >打开sshd.exe的防火墙,以允许入站SSH连接 ```bash New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 ``` tn>注意:New-NetFirewallRule仅适用于Windows 2012及更高版本的服务器。如果您使用的是客户端台式机(例如Windows 10)或Windows 2008 R2及更低版本,请尝试: ```bash netsh advfirewall firewall add rule name=sshd dir=in action=allow protocol=TCP localport=22 ``` >启动sshd(如果尚不存在,则会在%programdata%\ ssh下自动生成主机密钥) ```bash net start sshd ``` 其他 ------------ >要配置指定Shell进行执行,可以参考如下文章: https://github.com/PowerShell/Win32-OpenSSH/wiki/DefaultShell >设置sshd服务以自动启动 ```bash Set-Service sshd -StartupType Automatic ``` 卸载sshd ------------ >- 以管理员身份启动Windows Powershell - 导航到OpenSSH目录 - `cd 'C:\Program Files\OpenSSH'` - 运行卸载脚本 - `powershell.exe -ExecutionPolicy Bypass -File uninstall-sshd.ps1` .Net SSH 包的运用 ------------ >创建项目后,安装`SSH.NET`包 ```bash Install-Package SSH.NET -Version 2020.0.1 ``` >添加如下代码进行测试 ```bash using (var sshClient = new SshClient("host", port(default 22), "username", "pwd")) { sshClient.Connect(); using (var cmd = sshClient.CreateCommand("ls -l")) { var res = cmd.Execute(); Console.Write(res); } } ``` tn>注意连接windows默认是cmd控制台,所以可以进行`dir`命令进行测试.