1、确保虚拟机上的sshd可用
参考:vscode连接linux虚拟机 环境配置和常见问题解决方案
$ systemctl status sshd
h或
$ ps -ef | grep sshd
2、下载插件Remote SSH插件
3、配置config文件路径(可选)
4、生成ssh密钥
Step1:每个用户生成已对自己专属的SSH密钥对
例如:
$ ssh-keygen -t rsa -f ~/.ssh/id_rsa.zhangsan
Windows系统用vscode终端打开生成秘钥命令是:ssh-keygen.exe -t rsa -f ~/.ssh/id_rsa.zhangsan
输入完成一路回车就行,-t参数可有可无,-f指定私钥文件地址(可以放到非系统盘),公钥会根据私钥路径自己生成对应文件id_rsa.zhangsan.pub
Step2:在~/.ssh/config中指定各个用户的密钥地址
例如:如下,注意config文件的权限必须是600(Windows需要该文件具备可读性)
Host xxx
User zhangsan
IdentityFile ~/.ssh/id_rsa.zhangsan
Step3:将专属自己的公钥粘贴到远程机器上的~/.ssh/authorized_keys文件中,没有就创建一个,保存即可
$ cat ~/.ssh/id_rsa.zhangsan.pub
Tips:Windows11通过VM粘贴文件内容到虚拟机 shift + insert
Step4:配置远程机器文件权限
配置免密登录后仍需要密码的主要原因是权限的问题,
ssh不允许用户的主目录和.ssh目录以及authorized_keys文件的权限开放得太大
1、/home/xxx/.ssh目录的权限,它的权限要求是:700
chmod 700 /home/xxx/.ssh
2、密钥文件authorized_keys的权限,它的权限要求是:600
chmod 700 /home/xxx/.ssh/authorized_keys
5、测试ssh配置是否正确
ssh -i [公钥文件地址] [用户名]@[远程IP/HostName]
在vscode直接执行上面命令,如果不需要输入密码则代表成功了
参考:vscode SSH配置
6、配置Vscode
6.1、打开配置文件
6.2 进行配置,注意缩进
Host:Vscode配置的远程机器名称,自己定义即可
HostName:远程机器ip,ifconfig命令可以查看
User:登录的用户名
IdentityFile:本机私钥地址,第2步有介绍