完整过程vscode连接远程Linux服务器及免密登陆

Posted Mr.zwX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了完整过程vscode连接远程Linux服务器及免密登陆相关的知识,希望对你有一定的参考价值。

写在开头
做深度学习科研难免需要较大的算力,此时就需要在GPU服务器上运行自己的程序。之前,我通过scp命令把代码上传到服务器后,在终端ssh连接服务器,通过一系列的Linux命令进行数据集和模型的操作。其实cd ls这些命令都还很方便,但是当我需要查看或修改源码时,用vim编辑总是不能给我舒适的体验。甚至,服务器上的vim有时会出现排版或编写时bug(注:我不是说vim不方便,vim实际上是Linux系统强大的工具,而是最近我在服务器上遇到了vim的一些bug ~ 可以理解为我的求生欲哈哈哈)。
所以,为了更好的体验,这里记录一下vscode连接远程Linux服务器及免密登陆的基本操作。

步骤1:在本机生成公钥和私钥
在cmd中输入:

ssh-keygen -t rsa -C “your_email@xxx.com”

于是,在以下目录中能找到公私钥文件:

其中,id_rsa.pub是公钥,id_rsa是私钥。如果执行命令前,已经存在公私钥文件,则会重新生成后进行覆盖。

步骤2:在vscode安装Remote-SSH
进入vscode插件,搜索并安装即可:

步骤3:服务器端添加私钥到authorized_keys
将本机生成的rsa_id.pub公钥上传至服务器中,然后将其 追加(cat命令) 写入到~/.ssh目录下的authorized_keys文件中:

cat id_rsa.pub >> authorized_keys


为什么是追加写入?因为可能存在其他用户的公钥,千万别覆盖写入!
如果~/.ssh目录下没有authorized_keys文件,则需要我们手动创建一个:

touch authorized_keys

然后用cat命令写入将公钥写入文件。

步骤4:本机配置vscode文件
首先,进入vscode点击左侧的“远程资源管理器”,点击“+”:

然后,在界面上方输入你要连接的ssh命令(用户名 ip地址 端口号),示例如下:

选择ssh配置文件时,请选择.ssh/config这个文件,如图:

在这个文件中,存放着我们所配置过的所有远程连接信息:

当弹窗选择操作系统时,选择“Linux”即可。

步骤5:选择服务器文件夹开始使用

于是,就可以进行类似于Windows系统的可视化文件操作了。

实用功能!!!拖拽上传文件到服务器
将本机的文件,直接拖入vscode的目录栏中,即可实现文件的上传,无需繁琐的scp命令进行上传。



但是,要从服务器下载文件到本机的话,暂不支持拖拽下载。但是,在文件上点击右键,然后点击下载,也能实现快捷的下载功能。

其他实用操作:文件的删除、移动、重命名
和本地电脑一样管理文件就OK了。
注意一点就是,尽量避免在vscode上进行大文件的文件操作,因为有可能会导致宕机。大文件还是在命令行中进行 rm cp 等操作较为稳妥。

权限问题!
如果服务器端和本机vscode都配置完成,但是仍然需要输入密码,就要考虑到服务器端权限的问题了,通常采用如下命令解决:

cd ~
chmod 700 .ssh
cd .ssh
chmod 644 authorized_keys 
chmod 644 id_rsa.pub
chmod 600 id_rsa

记住以下权限原则:

1)authorized_keys的权限必须是600或者644
2).ssh目录的权限必须是700
3)/home/user目录必须是755

配置vscode远程免密登入Linux服务器

视频教程:https://www.bilibili.com/video/BV1s64y167cM?vd_source=cc0e43b449de7e8663ca1f89dd5fea7d

参考:配置vscode远程免密登入Linux服务器
地址:https://blog.csdn.net/weixin_54178481/article/details/123977675?spm=1001.2014.3001.5502

目录

一、Windows端操作

1. 生成私钥和公钥

cmd终端输入:

ssh-keygen -t rsa -b 4096

一直回车

2. 安装remote SSH插件

3. 配置config

打开vscode远程管理器进行免密登入配置,如下图例操作:

打开Configure

进入到公钥路径,将公钥文件拷贝到Linux服务器的 ~/.ssh 目录下

二、Linux服务端操作

1. 将公钥文件内容追加到authorized_keys文件中

cd ~/.ssh
cat id_rsa.pub >> authorized_keys

注:如果~/.ssh目录下不存在authorized_keys文件手动添加

touch  authorized_keys

2. 修改权限

chmod 700 ~/.ssh/
chmod 600 ~/.ssh/authorized_keys

重启vscode便可免密登入远程服务器

以上是关于完整过程vscode连接远程Linux服务器及免密登陆的主要内容,如果未能解决你的问题,请参考以下文章

Linux ssh服务 及免密匙认证

VSCode配置并连接远程服务器 并设置免密登录

配置vscode远程免密登入Linux服务器

配置vscode远程免密登入Linux服务器

VSCode使用SSH免密登录虚拟机设置

VScode远程连接服务器