Windows Terminal 免密 ssh 登录
Windows Terminal(Windows终端)是微软公司发布的面向Windows10的新命令行程序,它是一个更现代化,功能更丰富,更加高效的终端应用程序,适用于命令行用户。它包含最常用的许多功能,包括对选项卡,富文本,全球化,可配置性,主题和样式等的支持。
本文主要说明如何在 Windows Terminal 中配置 ssh 免密登录。默认读者对 Windows Terminal 有一定程度的理解和使用,如果是初次使用,可以想到官方网站了解 Windows Terminal 的功能和使用方法。Windows 终端概述 | Microsoft Learn
主体思路:通过 Windows Terminal 设置中的 profile 中新增 tab 标签页,并配置打开 tab 时自动执行相关 ssh 连接命令;并在要连接的服务器中追加客户端 ssh 公钥。具体操作如下:
Windows Terminal 设置中新增 tab 标签页
打开 json 设置文件,具体操作如下:
在 profiles -> list 中增加新的 tab 标签页打开选项,如下图所示:
关键参数
- guid:不能重复
- name:自己定义
- commandline:ssh 连接命令
其他的是主体和字体配置,根据自己的喜好设置,这里不做过多说明。最后保存就行了。
至此,我们就可以在 Windows Terminal “打开新标签页”的下来列表中看到我们新增的 name,点击后可以直接打开一个新的终端标签页,并自动执行 ssh 连接命令,但是美中不足的是,还需要我们手动输入密码,如何解决这个问题,看下面的操作。
设置 ssh 免密登录
有两种方案,
- 在 commandline 中输入连接密码,这种方案将密码以明文的形式写在配置文件中,这里不做推荐使用。
- 通过 ssh 公钥,免密登录。本文主要说明这种方法。
生成本机 ssh 公私密钥对
1 | # windows 用户可以通过 git bash 中的ssh-keygen 命令生成 |
默认位置在用户文件夹下的 .ssh 文件夹中生成两个文件:
- id_rsa
- id_rsa.pub
将本地 ssh 公钥追加到服务器
连接服务器,新建文件 tmp.pub,并复制上步生成的 id_rsa.pub 文件的内容到 tmp.pub,保存。然后,我们需要为用户的 authorized_keys 文件添加该 ssh 公钥,具体步骤如下:
1
2
3
4
5
6cd ~
vi tmp.pub # 复制本地 ssh 公钥 id_rsa.pub 中内容
mkdir .ssh && chmod 700 .ssh
touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys
cat tmp.pub >> .ssh/authorized_keys
rm tmp.pub
操作成功后,重启 Windows Terminal 就可以体验免密登录了。