PowerShell 7中ssh命令无法识别的解决方法咨询
解决PowerShell 7中无法直接调用ssh命令的办法
检查并调整Path优先级
打开PowerShell 7,执行$env:Path -split ';'查看环境变量的排列顺序。如果C:\Windows\System32\OpenSSH排在其他可能包含同名无效程序的路径后面,就会优先调用错误的程序。
临时调整顺序可执行:$env:Path = "C:\Windows\System32\OpenSSH;" + $env:Path永久生效的话,右键「此电脑」→「属性」→「高级系统设置」→「环境变量」,在用户变量或系统变量的Path列表里,把
C:\Windows\System32\OpenSSH移到最顶部。确认OpenSSH客户端组件状态
打开系统设置→应用→可选功能,检查「OpenSSH客户端」是否已安装。没装的话直接搜索添加;已装的可以尝试卸载后重新安装,排除组件损坏的可能。给系统ssh创建永久别名
在PowerShell 7的配置文件里添加别名,让ssh直接指向系统版本:- 执行
notepad $PROFILE打开配置文件(如果提示文件不存在,先运行New-Item -Path $PROFILE -ItemType File -Force创建) - 加入一行:
Set-Alias ssh "C:\Windows\System32\OpenSSH\ssh.exe" - 保存后重启PowerShell 7,输入
ssh就能正常调用了。
- 执行
验证PowerShell 7的架构匹配性
64位系统要对应安装64位的PowerShell 7。32位PowerShell会优先访问C:\Windows\SysWOW64\OpenSSH,如果这个路径下没有ssh程序就会报错。执行[Environment]::Is64BitProcess查看当前架构,返回True就是64位版本。
内容的提问来源于stack exchange,提问作者Czy
相关产品推荐
相关产品推荐

