目录
背景
天下苦密码验证久矣。鉴于每次使用vscode远程连接服务器的时候都需要密码验证,甚至切换文件夹都需要密码认证,于是各处搜罗免密登录的方法,亲测实现后将遇到的坑及详细的配置流程做了一份小白都能看懂的攻略。
前言
假设:本地物理机为windows,远程服务器为linux
环境准备:VSCode、Remote-SSH
踩过的坑:
【1】SSH通道下没有刚刚配置的地址信息?
A:点击“远程资源管理器”右上角的刷新按钮。
【2】远程用户名不匹配?
A:注意使用命令生成ssh的公钥是根据命令的执行用户不同而不同的,注意远程登陆的用户是root还是其他个人用户,确保用户名对应正确。可以使用输入whoami命令查看当前用户名。
【3】window将公钥字符串直接复制粘贴到linux中依旧免密失败?
A:window和linux的字符结尾符不同,直接通过复制粘贴可能免密验证不通过,最好方法是将window下的公钥文件整个拷贝到服务器中再进行重定向。
【4】通道配置文件添加了IdentityFile键值依旧免密失败?
A:注意添加格式是IdentityFile "C:\Users\YOUR_USER_NAME\.ssh\id_rsa",YOUR_USER_NAME替换成window用户名称,且一定不能漏掉""
一、插件配置
安装好vscode的情况下点击“拓展”,搜索Remote-SSH插件进行安装即可。
二、密码远程配置
1、按照如图步骤:点击ssh通道的“+”进行远程地址添加,添加案例如下:
ssh REMOTE_SERVER_NAME@192.168.12.12
#REMOTE_SERVER_NAME替换成远程服务器用户名称,如root等等
2、回车后会显示配置文件保存位置,默认选第一个即可:
3、 点击ssh通道小齿轮并选择第2步对应的配置存放位置,即可打开远程配置文件:
4、展开远程ssh通道,会发现新增了第1步添加的远程服务器地址,如果没有可以点击图中右上角的刷新按钮刷新即可。右键点击即可通过密码方式远程连接。
三、免密远程配置
本地机公钥生成
1、win+R打开运行窗口,输入cmd打开命令窗,输入以下命令生成公钥。生成期间要求输入一直点击回车就好,如果之前已经生成过公钥需要覆盖输出的话中间注意看有一步要输入y(如图):
ssh-keygen
2、记住命令行输出的公钥文件位置,找到对应文件。
远程服务器公钥配置
1、在安装ssh服务的条件下,通过以下命令生成,一路回车即可,生成期间要求输入时一直点击回车就好,如果之前已经生成过公钥需要覆盖输出的话中间注意看有一步要输入y(如图):
ssh-keygen
2、根据生成文件的位置跳转到该目录下,并创建authorized_keys文件
cd /root/.ssh
touch authorized_keys
3、将window生成的id_rsa.pub上传到远程服务器自定义的目录下,如/home/wx/,并通过以下命令将本机公钥复制到指定文件中:
cat /home/wx/id_rsa.pub >> authorized_keys
注意:个人测试使用window记事本打开公钥复制粘贴到linux中会配置失败,最好的方法就是直接将文件拷贝进linux中重定向,避免复制带来错误。
4、打开vscode上的ssh通道配置文件,添加本地机的id_rsa地址,且一定一定一定用""括起来否则无法识别:
IdentityFile "C:\Users\YOUR_USER_NAME\.ssh\id_rsa"
5、最后点击此处按钮即可实现免密登录: