通过远程PowerShell进行SSH攻击(PS-Session)

时间:2016-12-12 08:51:35

标签: powershell ssh remote-access

我正在尝试远程使用PowerShell连接到git(Windows)。

我在目标计算机上创建了一个正确运行的PowerShell脚本(如果我使用远程桌面访问该计算机)。

我使用SSH使用公共SSH密钥连接到PowerShell。

我使用Enter-PSSession -ComputerName servername连接到远程计算机以节省使用远程桌面连接的需要。这也是因为某些用户需要在不直接访问计算机的情况下运行此脚本。

我已经克隆 d远程计算机上直接在远程计算机上执行的存储库。

当我远程运行相同的PowerShell脚本时,我尝试执行Pull时会收到以下消息:

  

主机密钥验证失败。:String

我正在使用漫游配置文件,因此我在服务器上生成的密钥与存储在两台计算机上的用户目录中的密钥相同。

我是使用SSH密钥的新手,我认为这是一个安全功能。

是否有人能够帮助解决此问题以使其远程工作。 如果这会有帮助,我不需要它直接在远程机器上工作。

1 个答案:

答案 0 :(得分:1)

我无法理解你问题的真实本质,但也许你能够从我的评论中得到一些线索。

当SSH客户端连接到SSH服务器时,后者会向客户端发送其密钥。通常,服务器只有一个永远不会更改的SSH密钥。客户端必须信任服务器的密钥 - 这一事实在于SSH的信任模型的根源。

因此,SSH客户端软件在逻辑上将服务器密钥的指纹与您用于连接服务器的IP或主机名相关联。通常,当客户端SSH软件检测到它尚未连接到您要连接的特定服务器时,它将显示服务器密钥的指纹并询问您是否信任它。

  

从理论上讲,这意味着你先写下指纹   坐在服务器的控制台上,当SSH客户端问   你信任服务器的密钥,你可以比较它的fingreprint   向你展示你写下的那个。

好的,所以你接受"密钥,然后客户端通常保存该对 IP + fingerptint和/或主机名+指纹并且不会再次问这个问题 - 除非它检测到指纹与它保存的不同(在这种情况下它会大声抱怨,因为这可能意味着尝试制作一个Man-in - 中间攻击你)。

我引导你的是几点:

  • SSH客户端和服务器在某种意义上是不可互换的 可以通过SSH从机器A连接到机器B,但反之亦然:A上的客户端密钥只是客户端的密钥。

  • 即使您从A连接到B,也不意味着它可以 从C连接到B:A可能拥有B的密钥,但是C赢了。

Dunno是否有帮助,但这对评论来说太过分了。