VSCode使用Remote SSH连接远程服务器

原因

因为直接在Linux下用vim写程序太麻烦,没有代码补全等等,所以用VSCode加上各种插件来远程连接到Linux进行代码编辑。

安装ssh

  • Windows下安装openssh软件(win10自带,可以不用搞)win7的话从openssh官网下载最新版本默认安装即可
  • 具体参考网上的文章

安装插件

  • VSCode官方市场获取两个插件:“Remote - SSH”、 “Remote - SSH: Editing Configuration Files”
  • ps:装第一个插件,会自动安装第二个插件
  • Windows、Linux机器最好能访问互联网,因为通过VSCode连接到Linux的机器后,会自动在Linux的机器上安装相关插件,不然很多功能还用不了的,或者需要手工安装,比较的麻烦。
    VSCode使用Remote SSH连接远程服务器_第1张图片

配置ssh免密登录

  • 为了避免每次连接远程主机都要输入密码的情况
  • winows 下用ssh-keygen 生成公钥和秘钥,win+r 运行 cmd 使用以下命令(可以一路Enter)
ssh-keygen.exe -t rsa

VSCode使用Remote SSH连接远程服务器_第2张图片

  • 将公钥发送到服务器
  • 将“C:\Users{你的用户名}.ssh\id_rsa.pub”中的内容复制到Linux机器的“~/.ssh/authorized_keys”文件中
  • ​​.ssh​​ 文件夹没有怎么办?新建一个文件夹,命名为 ​​.ssh​​ 即可。同时要确认远程服务器是否支持 SSH ,如果此时正是通过 SSH 方式连接的,那肯定是支持了。
  • 将id_rsa.pub上传到Linux后使用下面的命令
cat id_rsa.pub > authorized_keys

注意Linux的权限

  • .ssh和authorized_keys的权限
chmod 700 ~/.ssh
chmod 600 authorized_keys
  • Linux里用于登录ssh的用户的家目录,权限必须为700
chmod 700 /home/用户名
  • window下的私钥文件id_rsa,如果登录时VSCode提示文件权限太高了,则要在文件属性里取消其他用户(实测主要是去掉everyone和none)对他的访问权限。

VSCode添加配置信息

  • 点击左侧的 “远程资源管理器” 图标,点击右上角的小齿轮(设置)

VSCode使用Remote SSH连接远程服务器_第3张图片

  • 在弹出来的窗口中,选择第一个 config 文件打开,参考下图,填写对应信息
    VSCode使用Remote SSH连接远程服务器_第4张图片

请添加图片描述

  • 只填三项也行,不用全填
Host :连接的主机名称,可自定义;
Hostname :远程主机的 IP 地址;
User :用于登录远程主机的用户名;
Port :用于登录远程主机的端口,SSH 默认为 22 ;
IdentityFile :本地的私钥文件 id_rsa 路径;
  • 如果需要连接多个远程服务器,可参考如上内容,配置多个即可;
Host :连接的主机名称,可自定义;
Hostname :远程主机的 IP 地址;
User :用于登录远程主机的用户名;
Port :用于登录远程主机的端口,SSH 默认为 22 ;
IdentityFile :本地的私钥文件 id_rsa 路径;

Host :连接的主机名称,可自定义;
Hostname :远程主机的 IP 地址;
User :用于登录远程主机的用户名;
Port :用于登录远程主机的端口,SSH 默认为 22 ;
IdentityFile :本地的私钥文件 id_rsa 路径;
  • 重新点击左下角的SSH连接图标,选择“connect to host”
  • 首次连接,输入Linux机器密码后,后续可以免密登录

其他问题

  • 如果自动登录过程还有其他问题,可以尝试跟踪Linux系统secure日志定位解决。
sudo tail -f /var/log/secure

参考文章

https://www.cnblogs.com/joyer/p/15305626.html
https://blog.51cto.com/u_13727606/4026318

你可能感兴趣的:(windows,linux,工具,服务器,vscode,ssh,linux)