Windows Terminal ssh 远程 Linux 和使用 Git

Windows Terminal ssh 远程 Linux 和使用 Git

Windows Terminal (中文:终端)是 Win11 自带的 Terminal。可以添加配置文件,然后把远程主机放在一个标签页里面。然后呢使用 Github 也希望可以每次不用输入密码,也需要使用 ssh-key。

ssh 远程主机另外一种很方便的方式是使用 ~/.ssh/config 给主机起个名字和配置 ssh-agent。

生成 ssh-key

Win11 默认是有一个 ssh 的客户端的。打开 Windows Terminal 执行:

ssh-keygen -t ed25519 -C "your_email@youremail.com"

一路回车。如果只是为了使用 Git,那么这步之后就已经可以啦。

拷贝公钥到远程主机

cat ~/.ssh/id_ed25519.pub | ssh user@REMOTE-IP-ADDRESS-OR-FQDN "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >>  ~/.ssh/authorized_keys"

ssh 通过密钥登录也就是可以免密登陆。如果是使用 Linux,有 ssh-copy-id 可以用。但是在 Windows 只能这样了。所以
ssh-copy-id 也就是自动做了上面这条命令的事情。

OpenSSH 规定,用户公钥保存在服务器的 ~/.ssh/authorized_keys 文件。每行一个公钥。

Power Shell 生成 guid

[guid]::NewGuid()

添加 Windows Terminal 标签

在 Windows Terminal 设置的左下角有个打开 JSON 文件。滚动到 "profiles" 然后拷贝粘贴(不要忘了该成你的用户名和IP地址)下面的到 "list" 数组。

{
    "guid": "{0caa0dad-35be-5f56-a8ff-afceaeaa6103}",
    "name": "Home Server",
    "commandline": "ssh -i \"~/.ssh/id_ed25519\" user@REMOTE-IP-ADDRESS-OR-FQDN",
    "hidden": false
},

Conclusion

上面的 ssh-key 是没有设置密码的,如果设置了密码,每次就要输入密码。那么为了避免每次输入密码,有另外一个工具 ssh-agent 就是为解决这个问题而设计的。参考链接给出了更丰富和更详细的内容,以此博客记录自己在 Win11 使用 ssh 的方法。

参考链接:

https://blog.anurut.com/ssh-with-private-key-in-windows-terminal/
http://longrm.com/2021/06/04/2021-06-04-windows-terminal-ssh-guide/
https://wangdoc.com/ssh/key.html
https://interworks.com/blog/2021/09/15/setting-up-ssh-agent-in-windows-for-passwordless-git-authentication/

posted @ 2022-04-13 14:53  wngtk  阅读(556)  评论(0编辑  收藏  举报