个人主页~
如何配置vscode免密连接远端主机
- 零、引言
- 一、登录vscode
- 1、安装插件
- 2、连接远端主机
- 3、添加主机
- 4、配置
- 5、连接主机和操作系统
- 二、免密操作
- 1、生成本地密钥
- 2、配置本地文件
- 3、配置远端文件
- 4、检查
- (一)文件权限是否够格
- (二)查看服务器配置
- (三)查看本地主机名映射
零、引言
因为输入密码用vscode登录远程主机太麻烦了,所以我就在网上寻找教程,本来寻思几分钟就能完了的事,找了半天没成功,还是最后求助的deepseek,跟deepseek也是又过了十分钟左右终于找出问题所在,如果想要进行vscode免密连接远端主机的,看这一篇就够了
一、登录vscode
1、安装插件
首先呢,在扩展中安装远程登录插件Remote - SSH
,
我这里还安装了汉化包Chinese (Simplified)
2、连接远端主机
在当前页面下按F1
,然后输入Connect to Host
,然后点击我用红色圆圈圈出来的
3、添加主机
点击添加新的SSH主机,因为我这里添加了一台,所以我有一个用户名,你那里如果没登录过那就只有一个添加新的SSH主机这个选项
接下来你需要输入登录远程主机的SSH命令,格式就像下面这样
ssh [username]@[IPaddress]
方括号中的内容是需要填写你的配置的,如果你的用户名是super
,IP地址是1.11.111.1111
那么就如下填写:
ssh super@1.11.111.1111
如果主机使用的是自定义端口,就要制定端口(假设端口为100)
ssh super@1.11.111.1111 -p 100
4、配置
上面的动作回车后显示SSH配置文件,直接选择第一个就行
5、连接主机和操作系统
在这里我们直接点击连接,vscode会在上方询问远程服务器的操作系统类型,直接选择Linux,然后再次输入密码,我这里就不演示了,成功后左下角会显示远程主机用户名,这就是我们连接成功了
二、免密操作
1、生成本地密钥
Win+R
打开输入cmd打开命令行控制器,输入ssh-keygen
然后一直回车就行,直到出现下面那个框框就算成功了,我们就生成了公钥id_ed25519.pub
和私钥id_ed25519
2、配置本地文件
在你的电脑中,找到路径C:\Users\[username]\.ssh
找到文件config
,这里的username就是你电脑用户的名字,如果没有.ssh
文件就创建一个,要注意.ssh
文件是隐藏文件,需要命令ls -a
才能看到
用文本打开配置后我们应该只有前三行内容,或者配置过端口的会多一行端口内容,最后一行就写C:\Users\[username]\.ssh\[filename]
,username
依旧是电脑用户名,然后filename
就是生成的私钥名,上面我们生成的私钥名叫做id_ed25519
那就写id_ed25519
,这个公钥和私钥与config
文件是在同一目录下的,这里的IdentityFile
就是私钥文件的路径,自己找着写一下,我这里生成的是我自己生成的自定义名字的,其实不需要自定义名字,让它自己生成类似id_ed25519
的名字即可
3、配置远端文件
然后还是在C:\Users\[username]\.ssh
目录下找到公钥文件id_ed25519.pub
,用文本打开公钥文件后复制
使用终端登录,进入隐藏目录.ssh
,然后创建文件authorized_keys
,已经有的就不用创建了
打开后将复制的公钥内容粘贴到里面,如果有你拥有多个远程主机,你都想要免密登录的话,就只粘贴公钥文件的内容到对应远程主机上的.ssh
目录下的authorized_keys
文件就好了,其他的操作都一样,到这里不少人的机器配置就没问题了,如果还有问题就看下边
4、检查
(一)文件权限是否够格
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
这里只要最前边这个拥有者的权限满足即可,后面的权限看自己需要了
(二)查看服务器配置
执行下面这条语句就可以看到对应的文件
sudo vim /etc/ssh/sshd_config
在文件中寻找下面的语句,如果文件中与下面不一致,修改为下面的内容
该两句语句在终端打开后一个在第一句,另一个也在靠前位置,仔细看
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
(三)查看本地主机名映射
我的问题就出现在这里,我的主机名没完成映射
# Linux/Mac:编辑 /etc/hosts
sudo vim /etc/hosts
在文件中添加一条内容
1.11.111.1111 my-name
这里前面是你的远程主机的IP地址,后面的my-name在C:\Users\[username]\.ssh
目录下的config
中查看,第一行host后面跟的就是这个名字,复制粘贴即可