打开微信,使用扫一扫进入页面后,点击右上角菜单,
点击“发送给朋友”或“分享到朋友圈”完成分享
在软件开发过程中,我们经常需要查看,编辑,编译,调试远程服务器上的代码,通过使用vscode ,可以使远程开发,获得近乎与本地开发一致的体验,大大提升开发调试效率。
vscode 借助ssh协议连接服务器,在连接前,可以先检查ssh连接是否可用,假设用户名为root,要连接的服务器为192.168.1.100,可在终端使用命令连接服务器
ssh root@192.168.1.100 # 如果连接出现问题,可以加上参数-v ,获得一些debug信息,定位连接问题 ssh root@192.168.1.100 -v
在VS code中,点击最右侧插件菜单,搜索ssh,选择remote-ssh 进行安装
使用cmd+shift+p
快捷键打开命令输入窗口,输入Remote-SSH:Connect to Host...,点击确认
输入root@192.168.1.100,点击确认,即可连接
连接过程中,如果跳出如下选择框,根据服务器类型,进行选择
期间还需要输入密码,等待服务器连接成功,连接完成之后,通过左上角菜单File > Open... or File > Open Folder...,打开文件或文件夹,就可以编辑服务器上的文件
参考使用技巧配置1,配置好服务器信息后,可进行如下所示的快速连接,连接成功后可在左下角看见ssh的绿色标识
使用快捷键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图片,选择配置好的服务器,点击连接
使用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 配置,即可连接服务器
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
报错如下:
ssh: connect to host 123.123.123.111 port 22: Connection refused
通常是由于22端口未打开、ssh服务未启动或防火墙禁止22端口等原因引起的,检查ssh服务是否启动,防火墙状态
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.指纹信息不匹配
热门帖子
精华帖子