首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开WSL会话的Powershell命令,连接到远程计算机,然后在该机器上调用脚本。

打开WSL会话的Powershell命令,连接到远程计算机,然后在该机器上调用脚本。
EN

Stack Overflow用户
提问于 2021-02-01 13:04:37
回答 2查看 500关注 0票数 1

我知道我可以使用PowerShell创建到远程计算机的连接,但由于(公司)原因,我无法完全解决,我需要通过*nix机器连接到它。不过,这没什么,因为出于这个目的,WSL系统是可以的。

我可以计算出如何通过PowerShell脚本通过WSL运行单个命令--例如,scp -i ~/.ssh/my_prv_key file.zip ec2-user@2.2.2.2:/home/ec2-user/工作得很好。

但是我想要做的是连接到远程机器,导航到另一个文件夹,以root身份登录,运行一个脚本.但我想不出如何从PowerShell脚本中驱动它。在*nix会话中,我将运行:ssh -i ~/.ssh/my_prv_key ec2-user@2.2.2.2,然后在远程连接上运行(例如):

代码语言:javascript
复制
cd /root/scripts
./do_something_with_uploaded_file.sh /home/ec2-user/file.zip
etc...

我假设我会做一些类似WSL ssh -i ~/.ssh/my_prv_key ec2-user@2.2.2.2的事情,但这似乎不起作用--它是连接的,因为它显示了最后的登录时间,然后呢?PowerShell会话似乎只是等待和等待。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-02 00:05:34

首先,如果您对wsl ssh有问题,但它似乎是连接的,那么它可能是一个伪终端分配问题。尝试wsl ssh -t ...wsl ssh -tt ...,看看这是否解决了特定的问题。

不过,剩下的问题.

虽然您可以在远程Linux主机上安装PowerShell并使用PowerShell远程处理(如@ralf-htp所提议的那样),但我认为这有点过分,因为您只想在EC2实例上运行命令,就像您所做的那样。这也可能是不可能的,因为这些EC2实例似乎是公司所有的,并且您可能没有在每个实例中添加PowerShell的灵活性。但如果那可行的话,这是值得考虑的。

由于(公司)原因,我不能完全搞清楚,我需要通过一台*nix机器连接到它。

这有点奇怪。您确定不能在OpenSSH上使用PowerShell吗?这是一个内置的特性,只需是开机。然后,您可以直接从ssh使用PowerShell命令,而不需要遍历WSL。在我看来,遥控器不太可能知道其中的区别。

我想不出如何从PowerShell脚本中驱动它。从*nix会话中运行: ssh -i ~/.ssh/my_prv_key ec2-user@2.2.2.2,然后在远程连接上运行(例如)

这似乎有点像苹果和橘子的比较。在"from *nix“上给出的示例是交互式的,而不是脚本。但是在PowerShell上,你说你想要从一个PS脚本驱动它。

在通过ssh访问远程主机时,“脚本”的答案实际上是相同的。您通常会将想要运行的所有命令直接放在ssh命令行上。类似于:

代码语言:javascript
复制
ssh -i ~/.ssh/my_prv_key ec2-user@2.2.2.2 "cd /root/scripts `; ./do_something_with_uploaded_file.sh /home/ec2-user/file.zip `; etc"

您可以引用要在远程主机上运行的命令,以分号分隔,并以反向引号(`)作为引号的引号,以允许PowerShell将分号传递给远程主机。

第二个选项是将脚本文件scp到远程系统,然后使用类似的ssh "command"语法执行它。如果脚本/命令列表又长又复杂,这可能会缓解一些引用问题。

我认为Ansible在这里可能更适合,但是似乎您需要PowerShell是出于某种原因。在WSL实例中运行时,仍然可以从Ansible访问PowerShell命令,我已经这样做了。主要问题是,您开始以这种方式再次进入嵌套引用/转义问题。

票数 0
EN

Stack Overflow用户

发布于 2021-02-01 23:22:51

您可以在任何Unix/Linux系统上安装PowerShell。

https://learn.microsoft.com/de-de/powershell/scripting/install/installing-powershell-core-on-linux?view=powershell-7.1

在这台机器上,您可以像往常一样使用powershell进行远程处理。有关教程,请参阅此视频:https://www.youtube.com/watch?v=qvJRaYlxI1w - PowerShell远程处理。

另见https://www.thomasmaurer.ch/2019/04/setup-powershell-ssh-remoting-in-powershell-6/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65993231

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档