SSH公钥免密登录

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.jsonlist 下添加:

{
    "commandline": "powershell.exe ssh 服务器登录用户名@服务器地址",
    "guid": "{3dc00b1e-b4ad-4c24-b3b1-ea1c4ba722b3}",
    "name": "REMOTE"
}

默认启动时打开这个自定义的 REMOTE 终端:
修改默认启动时打开的终端

最终效果(这里打开速度较慢的原因只要是硬件限制, 4GB RAM):
最终效果

问题记录

登录后终端无颜色提示

vim ~/.bashrc

# 将 `force_color_prompt=yes` 注释 取消或者
source ~/.bashrc

版权声明:本文为qq_40750972原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。