VS Code 远程连接 SSH 服务器

打印 上一主题 下一主题

主题 546|帖子 546|积分 1638


随着技术的不停迭代更新,在 Linux 体系中利用 Vim、nano 等基于 Shell 终端的编辑器(我曾经也是个 vimer,但是 VS Code 实在太香了),已经很难顺应当下的开发效率。因此大多数开发者开始利用 VS Code 远程连接 Linux 体系来解决编程效率的问题,VS Code 本身也是个优秀的代码编辑器,可以安装很多插件来扩展功能,其中就有 SSH 工具,远程连接到 Linux 体系,可以说就是在 VS Code 上编辑代码、编译代码、运行步伐,基本就是一条龙服务。
本篇将以 Windows 体系下的 VS Code 作为 SSH 客服端,连接远程的 Ubuntu 体系。条件条件是 Ubuntu 主机已安装了 SSH 服务组件,干系内容可查阅博客《基于 Ubuntu22.04 安装 SSH 服务》。

一、安装 Remote - SSH 扩展并连接远程主机

打开 VS Code,点击左侧的扩展图标(或利用快捷键 Ctrl+Shift+X),在搜索框中输入 “SSH”,可以看到官方提供的 “Remote - SSH” 扩展,点击 “Install” 安装。

安装好插件后,左边的侧边栏上多一个远程连接的图标,点进去之后,出现 SSH 连接界面,点击小加号可以连接远程服务器。

点击小加号后,VS Code 上方的输入框会下弹出另一个输入框,这个输入框用于输入 SSH 的连接命令。

利用 ssh 命令连接到远程服务器,以下是命令的格式:
  1. ssh username@remote_host
  2. ssh -p port_number username@remote_host
复制代码
第一行是默认端口为 22 的连接命令,第二行是自界说端口号,port_number 为端口号,username 为用户名,remote_host 为 IP 地址。下面的例子是 SSH 连接我的 Ubuntu 主机的命令(端口号被我修改为 2222):
  1. ssh -p 2222 grayson@192.168.31.90
复制代码
输入后回车执行, 会弹出选择更新设置文件,点击第一个路径即可。

然后软件的右下角会出现提示信息,点击 “Open Config” 打开设置文件。

确认设置文件没错的话,就可以生存关闭了。我这里把 Host 后面的内容改成了 Ubuntu,原先是显示 IP 地址。

简单的解释一下这段信息:


  • Host:这是一个用户界说的别名,用于指代远程主机。可以在在终端中执行 ssh 加上这个别名来取代替换 ssh username@remote_host。
  • HostName:指定远程主机的实际地址或主机名。
  • Port:指定 SSH 连接利用的端口号。
  • User:指定连接到远程主机时利用的用户名。
一样平常这时候可以看到左边树状图中的 SSH 分支上,会多出一个 Ubuntu,如果没出现,可以点一下上面的刷新按钮。点击 Ubuntu 旁边的小窗口,就可以连接到 Ubuntu 了。

新弹窗中选择 “Linux”。

然后输入远程主机的密码并回车。

连接成功的话,右下角会出现如下图所示的字样。

点击旁边的小三角形,再点击 “ TERMINAL”,可以看到 Ubuntu 的终端界面,在这里可以利用命令行操作 Ubuntu。

二、免密连接远程主机

每次连接都需要输入密码有稍许贫苦,一台呆板想要免密访问其他呆板,需要把本身的公钥内容发送到别的呆板的 authorized_keys 中,并在本机 config 文件中设置私钥文件位置。以下是实现免密码连接的一样平常步调:
1. 天生 SSH 密钥对

在当地体系上,也就是 Windous 体系天生 SSH 密钥对。按组合键 Win + r 打开命令行运行窗口,输入 cmd 并回车打开 CMD 命令窗口。利用 ssh-keygen 命令天生密钥对。默认环境下,这将在 ~/.ssh/ 目录下(~ 是主目录,CMD 打开后默认就是主目录)天生一个公钥文件(id_rsa.pub)和一个私钥文件(id_rsa)。固然,我们可以选择在天生密钥对时为其指定不同的文件名,如下命令,-f 选项后面的 ./.ssh/id_rsa_windows 就包含了路径以及末了天生的密钥对名字。
  1. ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f ./.ssh/id_rsa_windows
复制代码
上面的命令只有在 CMD 被打开时默认为主目录的时候才能利用,要保险一些的话,建议用下面的命令:
  1. ssh-keygen -t rsa -b 4096 -C "your_email@example.com" -f C:\Users\<YourUsername>\.ssh\id_rsa_windows
复制代码
其中的 <YourUsername> 是 Windows 的用户名。
如下图所示,我这里是输入了上一条命令,然后要输入密钥对的密码,我选择敲入两个回车跳过密码设置,毕竟不是做什么保密项目。如果密钥对天生了,会打印出一个图案,此时进入 .ssh 文件夹,可以看到密钥对已经天生。

   [!CAUTION]
  如果在多个平台上利用 SSH 连接到不同的远程服务器时,大概需要为每个平台天生和利用不同的密钥对。这是因为每个平台(例如,Windows、Linux、Mac)大概有不同的文件体系和密钥文件位置,同时在安全性的考虑下,不同平台上的密钥对最好是独立的。
  2. 将公钥复制到远程服务器

将当地体系上天生的公钥文件内容复制到远程服务器的,要将公钥的内容追加到 authorized_keys 文件,发送到远程主机。
同样在 CMD 窗口利用 scp 命令把 id_rsa_windows.pud 拷贝到 Ubuntu 体系,具体命令如下(别什么都照抄,这个是我的远程主机和端口号):
  1. scp -P 2222 ./.ssh/id_rsa_windows.pub garyson@192.168.31.90:~
复制代码
回到 VS Code 上,点击侧边第一个图标,然后点击 “Open Folder”,这时中间的输入框就会弹出远程主机的主目录,直接点旁边的 “OK” 按钮,然后输入 Ubuntu 的密码回车。

随后的弹窗中先勾上 “Trust the authors of all files in the parent folder ‘home’”,然后再点 “Yes, I trust the authors”。
可以看到文件已经传已往了。

然后在终端窗口输入 cat id_rsa_windows.pub >> ./.ssh/authorized_keys, 把公钥的内容复制到 .ssh/authorized_keys 里面,

然后在终端输入下面的命令,修改这两个文件的权限。
  1. chmod 700 ~/.ssh
  2. chmod 600 ~/.ssh/authorized_keys
复制代码
如果没有 .ssh 这个文件夹,可以手动创建一下。
3. 设置 SSH 客服端

修改 Ubuntu 体系/etc/ssh/sshd_config设置文件,添加上以下设置信息:
  1. RSAAuthentication yes
  2. PubkeyAuthentication yes
  3. AuthorizedKeysFile      .ssh/authorized_keys
复制代码
完成以上步调后,重启SSH服务以应用更改:
  1. sudo systemctl restart sshd
复制代码
4. 连接测试

关掉 VS Code 重新打开,实在已经是免密登录了,因为打开 VS Code 之后,左下角出现了 “SSH: Ubuntu”,阐明已经自动脸上了 Ubuntu 主机了。

我们点击这个蓝色的图标,然后在中间弹出的菜单中选择 Connext to Host…。

选择 Ubuntu。

这时就不需要输入密码,也可以连接了,同样的方法实用于任何 Linux 设置。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

络腮胡菲菲

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表