×

签到

分享到微信

打开微信,使用扫一扫进入页面后,点击右上角菜单,

点击“发送给朋友”或“分享到朋友圈”完成分享

vscode连接服务器开发 dx1112021-08-16 20:01:14 回复 1 查看 经验交流
vscode连接服务器开发
分享到:

1. 简介

        在软件开发过程中,我们经常需要查看,编辑,编译,调试远程服务器上的代码,通过使用vscode ,可以使远程开发,获得近乎与本地开发一致的体验,大大提升开发调试效率。

2.vscode连接远程服务器

2.1 测试ssh连接是否可用

vscode 借助ssh协议连接服务器,在连接前,可以先检查ssh连接是否可用,假设用户名为root,要连接的服务器为192.168.1.100,可在终端使用命令连接服务器


ssh root@192.168.1.100
# 如果连接出现问题,可以加上参数-v ,获得一些debug信息,定位连接问题
ssh root@192.168.1.100 -v

2.2 安装远程连接插件

在VS code中,点击最右侧插件菜单,搜索ssh,选择remote-ssh 进行安装

2.3 连接服务器

使用cmd+shift+p快捷键打开命令输入窗口,输入Remote-SSH:Connect to Host...,点击确认 

输入root@192.168.1.100,点击确认,即可连接

连接过程中,如果跳出如下选择框,根据服务器类型,进行选择

Illustration of platform selection

期间还需要输入密码,等待服务器连接成功,连接完成之后,通过左上角菜单File > Open... or File > Open Folder...,打开文件或文件夹,就可以编辑服务器上的文件

参考使用技巧配置1,配置好服务器信息后,可进行如下所示的快速连接,连接成功后可在左下角看见ssh的绿色标识

3.一些使用技巧

3.1 配置服务器信息,快速连接服务器

使用快捷键ctrl + shift +p 打开 vscode 菜单 ,输入remote-ssh ,选择Remote-SSH: Open SSH Configuration 

然后选择一个ssh的config文件进行配置,一般都是直接选第一个即可

ssh config配置文件的内容大致如下,

Host 100root
    HostName 192.168.1.100
    Port 22
    User root
    ServerAliveInterval 30
    ServerAliveCountMax 20

Host: 配置名

HostName:远程主机的IP地址

User:远程主机的用户名

Port:如果是22端口,可以不写

ServerAliveInterval 30 每隔20秒,向服务器发出一次心跳

ServerAliveCountMax 20 若超过20次服务器没有响应,则断开连接

配置完成之后,使用ssh验证配置是否可用


# 对于上面的配置,可以使用下面的命令进行验证
ssh 100root

确认配置完成之后,点击remot图片,选择配置好的服务器,点击连接

3.2 ssh免密登录

使用ssh密钥连接可以跳过输入密码,快速连接服务器

1.生成密钥,此时目录下会生成一个私钥和一个公钥,公钥文件以,pub结尾

# 在客户端执行,生成密钥对
ssh-keygen

2.上传公钥到服务器

# 已存在.ssh/authorized_keys文件的话,跳过此步骤
mkdir -p .ssh
chmod 700 .ssh
touch .ssh/authorized_keys
chmod 600 .ssh/authorized_key

# 添加公钥到服务器
echo "<your public key>" >> .ssh/authorized_keys
# <your public key> 换成.pub文件中的内容

# 如果客户机上有ssh-copy-id命令,可以快速添加公钥到服务器,注意将user和ip换成真实的用户名和密码
ssh-copy-id -i .ssh/id_rsa.pub  user@ip


3.3  连接docker到此,已配置完成,使用ssh命令连接服务器,检查服务器免密登录是否配置成功。

连接docker有几种方式,其中使用remote-ssh的方式较为简单

1.如果容器内没有ssh服务,安装ssh服务器

apt update && apt install ssh

2.更改ssh配置信息

启动容器物理机,ssh服务一般用的是22端口,所以容器内的ssh,应该避免使用22端口

修改 /etc/ssh/sshd_config 文件,修改Port 默认的22端口为其他端口,如果使用root登录,修改PermitRootLogin 后面的配置为yes

3.启动ssh服务


# 启动ssh服务
service ssh start

至此服务器端已配置完成,可以使用ssh进行连接,参考第二章 vscode连接远程服务器,进行vscode 配置,即可连接服务器

3.4 其他使用方法

1.c++代码调试 参考https://code.visualstudio.com/docs/cpp/cpp-debug

2.代码自动补全插件 Kite AutoComplete AI Code: Python, Java, Go, PHP, C/C#/C++,  , HTML/CSS, Type , React, Ruby, Scala, Kotlin, Bash, Vue, React


4.常见的连接错误

1.SSH连接时出现Connection refused

报错如下:
ssh: connect to host 123.123.123.111 port 22: Connection refused

通常是由于22端口未打开、ssh服务未启动或防火墙禁止22端口等原因引起的,检查ssh服务是否启动,防火墙状态

2.Host key verification failed

ssh root@192.168.***.**

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!

Someone could be eavesdropping on you right now (man-in-the-middle attack)!

It is also possible that the RSA host key has just been changed.

The fingerprint for the RSA key sent by the remote host is

76:fb:b3:70:14:48:19:d6:29:f9:ba:42:46:be:fb:77.

Please contact your system administrator.

Add correct host key in /home/fante/.ssh/known_hosts to get rid of this

message.

Offending key in /home/fante/.ssh/known_hosts:68

RSA host key for 192.168.***.** has changed and you have requested strict checking.

Host key verification failed.

这种情况一般发生于,启动了一个docker,ssh连接之后记住了指纹信息,之后你删除了这个docker,重新启动了一个新docker,新docker的ip和端口,和之前删除的docker一致,指纹信息比对失败,连接失败

第一次连接服务器一般会有如下提示,提示你连接服务器的指纹信息(sha256特征码),确认继续的话,会将这个指纹存下来,存在你电脑的.ssh/know_hosts文件中

当下一次连接服务器时,会检查你电脑.ssh/know_hosts文件中,服务器的指纹信息和服务器发送过来的指纹信息,如果信息对不上,就说明连接的与第一次连接的服务器不同,处于安全考虑,连接会失败。

解决办法 删除.ssh/know_hosts文件中,这个服务器的指纹信息,重新连接

1.指纹信息不匹配


版权所有 © 2024 寒武纪 Cambricon.com 备案/许可证号:京ICP备17003415号-1
关闭