【配置环境】Windows下 VS Code 远程连接虚拟机Ubuntu

目录

一,环境

二,关键步骤

三,详细步骤

四,免密远程连接

五,参考链接

六,番外知识


  • Windows 11 家庭中文版
  • VS Code 版本:1.80.2
  • VMware® Workstation 16 Pro (版本:16.1.2 build-17966106)
  • ubuntu-22.04.2-desktop-amd64

  • Windows下安装OpenSSH
  • VS Code安装Remote - SSH插件

  1. 在Ubuntu上安装SSH服务器。打开终端,并依次运行以下命令来安装OpenSSH服务器,并启动SSH服务器:
    1. sudo apt update
    2. sudo apt install openssh-server
    3. service sshd restart
  2. 打开Windows上的VS Code,并安装“Remote - SSH”扩展。在侧边栏的扩展视图中搜索“Remote - SSH”并安装它。
  3. 在VS Code中打开命令面板。你可以通过按下 Ctrl+Shift+P(或者点击VS Code左下角的“打开远程窗口”按钮)来打开命令面板。
  4. 在命令面板中,输入“Remote-SSH: Connect to Host”,然后选择该选项。
  5. 在弹出的菜单中选择“Configure SSH Hosts”。
  6. 选择“~/.ssh/config”文件或者创建新的配置文件(在该配置文件中可以配置多个Linux服务器信息)。
  7. 在配置文件中,添加以下内容,替换主机名为Ubuntu的IP地址或主机名,用户名为您在Ubuntu上的用户名:
  8. 返回到命令面板,再次输入“Remote-SSH: Connect to Host”(或者点击VS Code左下角的“打开远程窗口”按钮),然后选择刚才配置的连接。

  9. 输入您的Ubuntu用户密码进行身份验证,但这里遇到了如下错误,说明Windows环境中没有安装OpenSSH客户端。

  10. 以管理员身份运行 PowerShell,使用 PowerShell 安装 OpenSSH。 为了确保 OpenSSH 可用,请运行以下命令:
    1. Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH*'
  11. 如果尚未安装SSH客户端,则上面的操作会输出以下内容:
    1. Name : OpenSSH.Client~~~~0.0.1.0
    2. State : NotPresent
  12. 然后,执行以下命令安装OpenSSH客户端
    1. Add-WindowsCapability -Online -Name OpenSSH.Client~~~~0.0.1.0
  13. 启动并配置 OpenSSH 服务器来开启使用,然后依次运行以下命令来启动 sshd
    1. Start-Service sshd
    2. Set-Service -Name sshd -StartupType 'Automatic'
    3. if (!(Get-NetFirewallRule -Name "OpenSSH-Server-In-TCP" -ErrorAction SilentlyContinue | Select-Object Name, Enabled)) { Write-Output "Firewall Rule 'OpenSSH-Server-In-TCP' does not exist, creating it..." New-NetFirewallRule -Name 'OpenSSH-Server-In-TCP' -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22 } else { Write-Output "Firewall rule 'OpenSSH-Server-In-TCP' has been created and exists." }
  14. 然后点击 VsCode 界面左侧栏的“远程资源管理器”,在展开的“远程Linux连接信息”列表中,右击其中一个进行远程连接,如下。
  15. 连接成功后,VS Code会打开一个新的窗口,显示Ubuntu上的文件系统(可以使用“文件”>“打开文件夹”浏览和打开远程主目录中的文件夹。)。
  16. 然后就可以在VS Code中编写、保存和运行Ubuntu环境中的代码了。
  17. 如果要结束 SSH 连接,可以使用“文件”>“关闭远程连接”返回到在本地运行 VS Code。

要在VSCode中实现免密码远程登录到Linux系统,你可以通过使用SSH密钥对来实现。以下是详细的步骤:

  1. 生成SSH密钥对:首先,需要在本地计算机(比如Windows)上生成SSH密钥对。打开终端或命令提示符窗口(比如PowerShell),并运行以下命令:
    1. ssh-keygen -t rsa
  2. 按照提示,选择密钥文件的保存位置和密码等设置。这将生成一个私钥文件(id_rsa)和一个公钥文件(id_rsa.pub)。
  3. 将公钥文件添加到Linux服务器上:将公钥文件上传到远程Linux服务器上的 ~/.ssh/authorized_keys 文件中。使用以下命令将公钥文件复制到服务器(我的公钥文件在本地目录中为 C:/Users/86152/.ssh/id_rsa.pub):
    1. scp C:/Users/86152/.ssh/id_rsa.pub username@server_ip:~/
  4. username替换为你要连接到的Linux服务器上的用户名,server_ip替换为服务器的IP地址。这个命令会将公钥文件复制到远程服务器的home目录下。
  5. 使用SSH连接到Linux服务器:使用以下命令,然后输入登录密码进行身份验证:
    1. ssh username@server_ip
  6. 将公钥添加到authorized_keys文件中:使用以下命令将公钥文件的内容追加到~/.ssh/authorized_keys文件中(确保存在.ssh目录,如果尚不存在则创建):
    1. cat ~/id_rsa.pub >> ~/.ssh/authorized_keys
  7. 设置文件权限:使用以下命令修复文件权限问题,这将确保.ssh目录的权限为700(所有者具有读、写和执行权限),authorized_keys文件的权限为600(所有者具有读和写权限):
    1. chmod 700 ~/.ssh
    2. chmod 600 ~/.ssh/authorized_keys
  8. 完成以上步骤后,就可以通过VsCode连接到Linux服务器而无需输入密码了。

1.Windows 安装 OpenSSH

2.通过 SSH 进行远程开发

3.远程开发提示和技巧

1.SSH(Secure Shell)是一种用于远程登录和安全文件传输的网络协议。它提供了一种通过不安全的网络连接(例如,互联网)在客户端和远程服务器之间进行安全的加密通信的方式。以下是SSH的介绍:

  • 安全性:SSH是一个加密协议,可确保通过不安全的网络连接传输的数据的安全性。它使用公钥加密和对称密钥加密来保护通信的机密性,防止数据被窃听和篡改。
  • 远程登录:SSH最常用的用途是远程登录。使用SSH客户端,用户可以通过Internet连接到远程服务器,并在远程服务器上执行命令和访问资源,就好像他们直接在服务器上操作一样。
  • 文件传输:SSH提供了安全的文件传输机制,称为SCP(Secure Copy)或SFTP(SSH File Transfer Protocol)。使用SCP或SFTP,用户可以在本地计算机和远程服务器之间安全地传输文件。
  • 用户身份认证:SSH使用公钥加密来进行身份验证。在建立SSH连接时,客户端和服器之间会进行公钥交换。客户端会生成一对密钥(公钥和私钥),将公钥发送给服务器。服务器将公钥与特定用户关联,并用于验证用户身份。
  • 端口和配置:SSH使用默认的TCP端口22进行通信。但是,可以在需要时更改SSH服务器的端口。此外,SSH服务器的配置文件位于服务器上,并且可以用来定义许多不同的行为和限制。
  • 客户端和服务器:SSH由SSH客户端和SSH服务器组成。客户端用于发起SSH连接并向服务器发送命令和请求。服务器负责接受客户端连接,并提供所需的服务(登录、文件传输等)。
  • 公共网络:由于SSH提供了安全的加密通信,它被广泛用于在不受信任的公共网络上访问远程服务器。通过SSH,用户可以在互联网上安全地使用远程服务器而无需担心敏感数据的安全性。

总之,SSH是一种安全的远程登录和文件传输协议,它提供了加密通信和身份验证机制,使用户能够在不安全的网络上安全地访问和操作远程系统。


2.OpenSSH是一个开源的实现了远程登录和安全文件传输功能的软件套件。它是SSH协议的一个实现,并提供了一系列命令行工具和守护进程,用于在网络上进行安全的远程访问和文件传输。以下是OpenSSH的介绍:

  • 功能:OpenSSH提供了通过加密通信协议的安全远程登录和文件传输功能。它支持SSH协议的各种功能,包括加密、公钥和身份验证、远程命令执行、文件传输(通过SCP和SFTP),以及端口转发和隧道等功能。
  • 安全性:OpenSSH致力于提供安全的通信和数据传输。它使用加密技术保护通信内容,确保数据在传输过程中不被窃听、篡改或伪造。其中包括使用对称密钥算法和公钥加密算法对通信进行加密,并使用各种身份验证方法(例如密码、公钥和证书)确保用户的身份验证。
  • 组件:OpenSSH由几个核心组件组成。其中,OpenSSH客户端(ssh)用于发起SSH连接并与远程主机交互;OpenSSH服务器(sshd)在远程主机上运行,并负责接受SSH连接、进行用户身份验证以及提供远程登录和文件传输服务;还有其他辅助工具如ssh-keygen用于生成和管理密钥对,以及ssh-agent用于管理私钥的代理身份验证。
  • 操作系统支持:OpenSSH可以在多种操作系统上运行,包括各种类Unix系统(如Linux、BSD等)以及Microsoft Windows的版本。可以在这些系统上方便地安装和配置OpenSSH,以实现安全的远程登录和文件传输。
  • 配置文件和自定义:OpenSSH提供了灵活的配置选项,使用户可以根据特定需求进行自定义。通过修改OpenSSH的配置文件(如sshd_config),可以定义安全策略、访问控制规则、端口设置、用户配置等。这使得OpenSSH适应不同的环境和需求。
  • 社区支持和开源:OpenSSH是一款开源软件,它的源代码是公开可用的。这使得用户和开发人员可以自由地查看、修改和分发代码,并贡献改进。OpenSSH拥有强大的社区支持和广泛的用户群体,因此能够在保持安全性的前提下不断改进和更新。

总体而言,OpenSSH是一款功能强大的开源软件套件,它提供了安全远程登录和文件传输的功能,并通过其加密通信协议确保了数据和用户身份的安全性。它被广泛用于管理远程系统、进行系统维护、远程合作、备份和文件传输等各种应用场景。

猜你喜欢

转载自blog.csdn.net/weixin_43729127/article/details/131877323