SSH(secure shell)是建立在应用层基础上的安全网络协议,它是专门为远程登录会话和其他网络服务提供安全性的协议,可以有效弥补网络中的漏洞。
通过SSH,可以把所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗,同时存在一个额外的好处就是传输的数据是经过压缩的,因此可以加快传输的速度。
需要注意的是SSH只是一种协议,这意味着实现的方式多种多样。
SSH是安全的,因为它采用了非对称加密技术(RSA)加密了所有传输的数据,另一方面SSH的安全性并非绝对的,因为其本身提供两种级别的验证方式(基于口令的安全验证和基于密钥的安全验证),前者容易受到中间人攻击。
Powershell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.NET Framework的功能。Powershell可以看作cmd的超集,常用命令诸如dir、cd、ipconfig等在PowerShell中都能直接使用,当然其背后的实现方式是完全不同的,PowerShell基于完全的面向对象,它通过给函数和对象“起别名”的方式来支持这些旧的命令。
PowerShell的特色在于面向.net对象,鉴于笔者目前不懂.net,因此单纯把PowerShell看作方便在本机使用的命令行罢了,使用它的目的是进行ssh远程连接,xshell毕竟是付费的,虽然找“学习版”也很容易,但哪有现成的PowerShell更让人省心呢?
打开PowerShell,找不到可以在搜索栏直接搜
打开测试ssh连接的虚拟机,这里使用的是kali(基于Debian)
想要使用ssh服务一定要确保ssh服务正常启动
查看kali虚拟机ip地址,192.168.3.107
显然,连接成功,终端已经替换为kali中的终端。连接指令为:ssh 目标用户名@目标ip
连接成功后,即可通过PowerShell控制kali虚拟机。
当使用ssh远程连接时,经常出现Connection refused的连接失败提示。
首先确定目标用户名和目标ip地址正确,特殊情况下需要加上端口转发,这种情况可能出现在跨越多个主机和虚拟机时会要求端口转发。
例如:现有主机A,主机B,主机B中centos7虚拟机,使用主机A通过PowerShell远程连接主机B中的centos7虚拟机。
虚拟机IP为192.168.200.128 设置端口映射12345:22
主机B的IP为192.168.3.108
通过 -p 端口号 12345 成功连接,实现SSH连接局域网中另一台主中的虚拟机。
原作者:@顾岛啊岛啊岛啊岛