云计算百科
云计算领域专业知识百科平台

项目实训纪实(二)——vscode连接服务器(理论+操作)

理论部分

在现代软件开发中,远程开发已经成为一种非常常见的方式。尤其是在需要部署到云服务器、运行特定环境或者团队协作的场景下,开发者往往需要连接远程主机来进行代码编写、调试和部署。

为了实现这种远程连接并保证数据传输的安全性,我们通常使用 SSH 协议。

1. 什么是 SSH?

SSH 是一种加密的网络协议,主要用于在不安全的网络环境中安全地登录远程服务器、执行命令、传输文件等操作。

SSH 的核心目标包括:

  • 保密性(Confidentiality):数据传输过程中会被加密,防止信息被窃听;

  • 完整性(Integrity):确保传输的数据没有被篡改;

  • 身份验证(Authentication):确保通信双方的身份真实可信。

在技术实现上,SSH 主要依赖于密码学中的三种机制:非对称加密、对称加密和哈希算法。首先,SSH 会在连接开始时使用非对称加密,也就是常说的“公钥”和“私钥”机制,来验证双方身份,并协商一个临时的加密密钥。接着,真正的数据传输过程会使用对称加密,这种加密方式计算效率高、速度快,适合大量数据传输。最后,为了保证传输内容的完整性,还会使用哈希函数来生成“数字指纹”,防止数据被篡改。

2. SSH 的工作机制

一个 SSH 连接大致可分为以下几个步骤:

  • 握手阶段:客户端和服务器交换公钥、协商加密算法;

  • 身份验证阶段:客户端通过密码或密钥认证自己的身份;

  • 建立安全通道:之后的所有通信都通过加密通道进行,确保安全。

  • “握手阶段”:就像两个陌生人初次见面时,会先自我介绍、互换联系方式,SSH 中的客户端(我们用的电脑)和服务器(远程主机)也会交换一些重要的信息,比如各自的“公钥”(一种能公开分享的加密方式)和支持哪些“加密方式”(就像决定用哪种语言交流)。这个阶段的目的就是让双方确定一个统一的“加密规则”。

    “身份验证阶段”:这个阶段就好比你要进某个大楼,保安不认识你,但你出示了门卡或身份证。SSH 中,客户端要证明自己是谁,通常的方式有两种:一种是输入密码(就像刷卡),另一种是使用 SSH 密钥(像高级别的指纹验证),服务器会确认你的身份,决定是否允许你进入。

    “建立一条安全通道”:这条通道的作用就像一个只能你和服务器看见的专属密道,无论你之后传什么数据,哪怕是很私密的命令或重要的文件,在这条密道里都被加密包裹着,别人即使拦截了信息,也只能看到一堆乱码,无法破解。

    操作部分(Mac环境)

    一、环境准备

    1.安装VSCode

    从官网下载并安装 VSCode.

    2.检查 SSH 客户端

    Mac 系统自带 OpenSSH 客户端,通过终端执行ssh-v确认是否可用。

    出现以上界面则为成功安装。

    brew install openssh

    若无,可通过 Homebrew 安装

    3.远程服务器要求(可以是学校的服务器)

    确保服务器已开启 SSH 服务(默认端口 22)

    二、安装与配置 Remote-SSH 插件

    1.安装插件

    打开 VSCode,进入扩展市场(Cmd+Shift+X),搜索 Remote – SSH 并安装

    2.SSH连接并登录

    点击加号进入连接界面

    输入服务器地址和密钥进行连接

    选择默认文件即可

    连接成功,可以看到服务器的文件列表

    三、使用 SCP 命令拷贝文件

    SCP是一种通过 SSH 协议进行文件传输的工具,它可以在本地计算机和远程服务器之间安全地传输文件。在开发过程中,使用 SCP 可以方便地将本地文件上传到远程服务器,或者将远程服务器上的文件下载到本地进行编辑。

    1. 基本语法

    SCP 的基本语法如下:

    • 源路径:指要传输的文件或目录路径。

    • 目标路径:指文件传输的目标位置,格式通常是 username@hostname:/path。

    scp [选项] [源路径] [目标路径]

    2. 本地上传到远程服务器

    假设你有一个本地文件 file.txt,并且希望将其上传到远程服务器的 /home/username/ 目录下,可以使用以下命令:

    scp /path/to/local/file.txt username@remote_server:/home/username/

    3. 远程服务器下载到本地

    如果你想从远程服务器下载文件到本地,可以使用以下命令:

    scp username@remote_server:/path/to/remote/file.txt /path/to/local/

    4. 传输整个目录(递归)

    若需要上传整个目录(包括子目录和文件),可以使用 -r 选项来递归复制目录:

    scp -r /path/to/local/directory username@remote_server:/path/to/remote/

    5. 指定 SSH 端口

    如果远程服务器的 SSH 服务不使用默认端口(22),你可以通过 -P 选项指定端口号:

    scp -P 2222 /path/to/local/file.txt username@remote_server:/path/to/remote/

     

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 项目实训纪实(二)——vscode连接服务器(理论+操作)
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!