- 参考链接1:https://www.cxyzjd.com/article/weixin_40313940/105866897
- 参考链接2:https://zhuanlan.zhihu.com/p/110413836 知乎大佬就是不一样,讲解得很详细!
Step1. 使用SSH在本地生成密钥对
windows terminal运行:
ssh-keygen -t [rsa][dsa] -C "DEVLOP PALTFORM ON LAB" [-p port_number]
## -t 指定密钥的类型:RSA 和 DSA 两种认证密钥,`[]`表示可选项,选择一种即可
## -C 添加注释,附着在生成的公钥后面
## -p 指定端口号,默认不需要指定,使用 22 端口
生成密钥,保存在当前用户的 .ssh 文件夹中:路径 C:\Users\你的用户名\.ssh
得到的文件中 id_rsa.pub 就是与私钥 id_rsa 对应的公钥。
Step2. 填写相关配置文件
vscode 中,ctrl+shift+p 打开设置 Remote-SSH:Open Configuration File。在配置文件中添加私有密钥(注意不是公钥!)的地址:C:/Users/你的用户名/.ssh/id_rsa
Host 自定义一个清晰易懂易记的名称
HostName 主机的IP地址或者域名地址
Port 默认22,如果是自定义的修改为自定义的
User 用户名
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes # 图形界面显示
# 与服务器保持连接,防止过一段时间自动断开
ServerAliveInterval 60
ServerAliveCountMax 60
Step3. 将生成的公钥传到服务器
提示:如果服务器没有
.ssh文件,可以使用ssh localhost命令连接本地,然后就会自动生成.ssh/known_hosts。
把客户端的公钥( .pub 结尾)追加到 .ssh/authorized_keys 文件(服务器授权密钥)。
在登录到服务器的终端执行以下命令:
sudo echo "复制的 .pub 公钥内容" >> ~/.ssh/authorized_keys # 如果没有该文件,会自动创建
参考链接:
echo追加内容到文件,https://blog.csdn.net/jakemanse/article/details/8043603

Done!
到此配置完毕!配置完后突然发现现在终端也可以直接不用输入密码就可以直接登录了。可以直接在 Windows Terminal 中创建一个自定义的远程终端,再也不用纠结于使用哪种终端连接工具了 hhh!
补充:Windows Terminal 添加自定义终端
有关 Windows Terminal 的美化和相关配置请看我的这篇博客:PowerShell7.X的安装与美化
开始之前,建议先修改下 ~/.ssh/config 相关配置。
Host REMOTE
HostName 服务器 IP 地址 # 服务器地址
Port 22 # 指定端口号,默认为 22
User guest # 用户名
IdentityFile ~/.ssh/id_rsa # 身份验证,客户端私钥
ForwardAgent yes # 图形界面显示
# 与服务器保持连接,防止过一段时间自动断开
ServerAliveInterval 60
ServerAliveCountMax 60
参考链接1:https://einverne.github.io/post/2017/05/ssh-keep-alive.html
参考链接2:https://blog.csdn.net/humanbeng/article/details/120062468
Solution #1 直接在图形界面里面操作


Solution #2 在配置文件中添加
windows terminal 的配置文件 settings.json的 list 下添加:
{
"commandline": "powershell.exe ssh 服务器登录用户名@服务器地址",
"guid": "{3dc00b1e-b4ad-4c24-b3b1-ea1c4ba722b3}",
"name": "REMOTE"
}
guid生成地址:https://www.uuidgenerator.net/version4
默认启动时打开这个自定义的 REMOTE 终端:
最终效果(这里打开速度较慢的原因只要是硬件限制, 4GB RAM):
问题记录
登录后终端无颜色提示
vim ~/.bashrc
# 将 `force_color_prompt=yes` 注释 取消或者
source ~/.bashrc