【完整过程】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

猜你喜欢

转载自blog.csdn.net/qq_16763983/article/details/126254636