最近遇到了一个问题,就是我新安装了Ubuntu 26.04的虚拟机并且打开了里面的文件夹,我主要是对U-boot源码和kernel源码进行研究学习。
每次打开vscode,都要输入Uboot的登入密码,有时候甚至需要登入多次,不厌其烦。
后来我在网上找了一个如何免秘钥vscode登入Ubuntu26.4的方法,现在记录下来。
感谢AI,我用的是千问。
第一步:在主机windows端生成SSH秘钥对。
打开终端,我使用的是power shell,输入一下:
bash
PS C:\Users\Administrator> ssh-keygen -t ed25519 -C "我自己的邮箱"
我自己的邮箱我习惯使用微软的邮箱。
bash
enerating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\Administrator/.ssh/id_ed25519): C:\Users\Administrator/.ssh/id_ed25519
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in C:\Users\Administrator/.ssh/id_ed25519
Your public key has been saved in C:\Users\Administrator/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:oygUSC9eqVJg3B5FPqwgP4olp3446C503Eozq4DHo/U duanjianbo3330@outlook.com
The key's randomart image is:
+--[ED25519 256]--+
|oo. oo |
|o+.o+ |
|oo++.+ |
|oo=o. . |
|ooB.. S |
|+X B o . . |
|O X * . |
|=* B |
|==+ E |
+----[SHA256]-----+
要求输入保存SSH秘钥密钥对的目录。
然后,按了2次回车。
这样在"C:\Users\Administrator\.ssh"文件夹下就生成了2个SSH密钥对。

第二步:还是在power shell终端中输入:type xxx 查看秘钥信息。
bash
type C:\Users\Administrator\.ssh\id_ed25519.pub
也就是查看刚才秘钥对中的id_ed25519.pub的内容,也可以直接使用notepad ++打开查看。Ctrl+C复制一下。

第三步:回到Ubuntu虚拟机中,将公钥复制到Ubuntu虚拟机中保存。
bash
mkdir -p ~/.ssh
echo "这里粘贴你刚才复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
这里的~也就是"/root"
这样在Ubuntu的/root路径中就有了一个.ssh的文件夹以及一个autorized_keys的文件,并且autorized_keys文件的内容为刚才的秘钥:
bash
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINIImAoZ14Zt0+B8m5AcqNa0MgTUuOxlrzboSBJElgJH duanjianbo3330@outlook.com

最后一步:回到Windows主机中打开.ssh文件夹中的"config"文件,配置SSH信息

bash
Host ubuntu-vm
HostName 你的Ubuntu虚拟机IP地址
User 你的Ubuntu用户名
IdentityFile C:/Users/你的用户名/.ssh/id_ed25519 # Windows路径示例
这样重新打开vscode的ssh中Ubuntu虚拟机IP中文件夹的时候就不需要每次输入密码了