Windows Terminal‘s 设定Git Bash 和SSH

Windows Terminal’s 设定Git Bash 和SSH
Windows Terminal 是Windows 10 的一个免费APP, 可以从Microsoft Store 下载取得.

它自动认得WSL里安装的Distro ,看起来相当不错.不过却少了git for windows的Git Bash,和SSH的设定.以下是如何设定让它也可以直接起动Git Bash,和直接用SSH连上主机.

加入Git Bash (git for windows) 设定
使用快速键ctrl + ,开启设定,或者由V图示–>设定进入设定
注意:它会使用预设的应用程式开启它的设定档setting.json (如果有安装VS Code一般都会自动使用VS code开启).
在这里插入图片描述
将以下设定加到适当的设定段中(你可以发现其他的较短的设定段落,例如: ‘Windows PowerShell’ powershell.exe , ‘命令提示字元’ cmd.exe , …等字眼).插入后记得将C:/Program Files/Git改成你自己安装git for windows的地方(一共有二处)

{   // 请将 'C:/Program Files/Git' 还成你安装 'git for windows' 的路径
    "name": "Git Bash",
    "tabTitle": "Git Bash",
    "commandline": "C:/Program Files/Git/bin/bash.exe --login -i",
    "startingDirectory": "%USERPROFILE%",
    "fontFace": "Consolas",
    "fontSize": 14,
    "acrylicOpacity": 0.95,
    "closeOnExit": true,
    "colorScheme": "Campbell",
    "cursorColor": "#FFFFFF",
    "cursorShape": "bar",
    "historySize": 9001,
    "icon": "C:/Program Files/Git/mingw64/share/git/git-for-windows.ico",
    "padding": "0, 0, 0, 0",
    "snapOnInput": true,
    "useAcrylic": true
},

在这里插入图片描述
存档, 重开Windows Terminal 即可.
选项设定之一:
当我们直接用windows terminal开启git-bash会产生另一个令人不悦的状况:错误提醒音从beep变成整个萤幕一闪了,如果你很在意这个改变可以在git-bash视窗里执行下列指令,然后重开git-bash即可.

echo "set bell-sytle none" >> ~/.inputrc

bell-style可以设定成none , audible , visible三个其中之一.不过目前(Windows Terminal v1.14)实测是设成audible不work.在profile里加了"bellStyle":"audible"设定也还是没声音(这个bug会在1.15版修正.因为使用Windows Terminal Preview (v1.15)是可以正常运作).
选项设定之二:
我映象中, git-bash预设在输入档案路径时,会不分大小写帮们找到最相近的路径,后来(不知是从哪一版开始)却是会分大小写,让我这个被惯坏了的老人家不知如何是好,好在这个也是可以设定的.如果你也是很在意这个改变,可以在git-bash视窗里执行下列指令,然后重开git-bash即可.

echo "set completion-ignore-case On" >> ~/.inputrc

注一:已经不需要"guid"这一项设定了, stackoverflow上有人的回答里有"guid" (上面的贴图里也有).但是后来实测时,发现是可以不要的.应该是已经取消为必要项目的设定了吧?!

加入SSH 设定
Windows预设有安装OpenSSH,我们可以直接输入ssh使用它.

它会在你的家目录下建立一个名为.ssh的目录,里面会有二个档案.

known_hosts
里面有ssh曾经连过线的主机列表及设定.除了删除一些临时测试的主机一般我们不会动这个档案.或者是发生类似下面的错误画面:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:KWuQBLo2qjB18kY1iLl58wW1b0pl2T3vPz9aj6WDmHM.
Please contact your system administrator.
Add correct host key in /c/Users/user001/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/user001/.ssh/known_hosts:3
ECDSA host key for 192.168.33.10 has changed and you have requested strict checking.
Host key verification failed.

这个讯息是说远端主机的金钥改变了, 这个平时是不应该发生的, 不过如果是还在建置/测试/设定中的主机那就另当别论了. 我们可以直接把它指出来的那一行删除, 即可解决这个问题.
config
里面是主机的相关设定,如: ip地址,连线的port号码,使用哪一个帐号等等
Host :输入的是我们在ssh指令输入的主机代号(不一定是主机域名, ip也可以,甚至同一部主机我们需要以不同的帐号连进去时,也可以自己取一个代号)
User :则指定连线这部主机时用什么用户帐号.
Port :指定这部主机的SSH port号码.
HostName :则是输入DNS域名,或者直接输入ip地址(没有DNS可以帮你name转ip时.例如:区域网路(LAN)中的主机或者自己肚子里的VM).
IdentityFile :指定私钥档(private key)的位置.
注二:需要注意的是:如果你在输入ssh指令时,偶而会用代号,偶而又会用ip (都没有输入’用户帐号’)那么应该在设定档中,输入二个设定.如:下面的例子里的第2和第3组设定.

.ssh/config范例档内容如下:

Host myVMS
  HostName 192.168.36.130
  User jackting
 
Host 192.168.33.10
  User vagrant
 
Host jupyter
  HostName 192.168.33.10
  User vagrant

接着是这一段的的重点: 如何设定Windows Terminal 直接用SSH 连到主机上.

{
    "name": "SSH Jupyter",
    "tabTitle": "vBox-Jupyter",
    "commandline": "ssh 192.168.33.10",
    "fontFace": "Consolas",
    "fontSize": 14,
    "icon": "%USERPROFILE%/Pictures/gnome_fs_ssh.ico"
},

“icon” :麻烦你自己上网找一个免费的下载下来用.
“commandline” : ssh后面的主机你可以用ip ,或者是ssh的config设定档里的代号.
如果对方用的是私钥(private key)则可以在config档里登载私钥档的路径.
当然也可以直接在指令里插入
-i path/to/private_key_file
例如: vagrant开设出来的VM privatekey路径是.vagrant/machines/default/virtualbox/private_key那"commandline"的内容就会是

"commandline": "ssh -i C:/Works/VM_A/.vagrant/machines/default/virtualbox/private_key 192.168.33.10"

或者不改指令, 直接在设定档里加入指定私钥档的路径.

Host 192.168.33.10
  User vagrant
  IdentityFile "C:/Works/VM_A/.vagrant/machines/default/virtualbox/private_key"
 
Host jupyter
  HostName 192.168.33.10
  User vagrant
  IdentityFile "C:/Works/VM_A/.vagrant/machines/default/virtualbox/private_key"

加入Docker Container 设定
即然可以认得WSL里的Distro ,那…连线到Docker的Container应该不是什么太难的事.


```c
{
    "name": "myAIlab bash",
    "tabTitle": "docker-Jupyterlab",
    "commandline": "docker exec -it myAIlab bash",
    "fontFace": "Consolas",
    "fontSize": 14,
    "icon": "C:/Program Files/Docker/Docker/resources/ddvp.ico"
},

icon档是Docker Desktop for Windows内建的.你只要把myAIlab换成自己要连上去的docker container name即可.

修改预设的Terminal session
Windows Terminal 原本预设的terminal session 是powershell

    "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

将原本预设powershell 改成cmd, 如下:

    "defaultProfile": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",

defaultProfile的设定值是profile的guid ,如果没有guid也可以改用profile的name ,例如前面新增加的git-bash设定.

    "defaultProfile": "Git Bash",

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mikes zhang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值