Tig*_*ger 4 shell bash ssh windows shell-script
我的远程机器是 Windows,我正在ssh从 ubuntu 到 Windows。
我想使用 git bash 而不是命令提示符,但是运行ssh将带我到默认命令提示符,有什么方法可以通过 git bash 调用ssh吗?
我尝试以下命令不起作用:
ssh Administrator@54.xxx.xxx.207 < "C:\Program Files\Git\bin\sh.exe"
Run Code Online (Sandbox Code Playgroud)
我可以在 ssh 之后运行以下命令来启动 git bash,但我正在寻找一种方法来自动化这个过程?
"C:\Program Files\Git\bin\sh.exe" --login
Run Code Online (Sandbox Code Playgroud)
我使用的是 Windows 2012 R2
是的,如果您安装了OpenSSH For Windows Server 2019 和 Windows 10,则可以。
从Windows 10 1809 和 Server 2019 的 OpenSSH 服务器配置:
通过
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\OpenSSH在字符串值中添加 shell 可执行文件的完整路径,在 Windows 注册表中配置默认 ssh shellDefaultShell。例如,以下 Powershell 命令将默认 shell 设置为 PowerShell.exe:
Run Code Online (Sandbox Code Playgroud)New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -PropertyType String -Force
要将 Git Bash 设置为默认 shell,请在 PowerShell 中以管理员身份运行此代码段:
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\Program Files\Git\bin\sh.exe" -PropertyType String -Force
Run Code Online (Sandbox Code Playgroud)
为了得到一个登录shell,你可以创建一个批处理文件,sh.bat在C:\Program Files\Git\bin这个内容:
@echo off
"C:\Program Files\Git\bin\sh.exe" --login
Run Code Online (Sandbox Code Playgroud)
并将DefaultShell值替换为C:\Program Files\Git\bin\sh.bat.
该DefaultShell注册表项是一个新项,您可以将其删除以恢复默认的命令提示符。