一般linux嵌入式开发时,这个需求是挺高的,大部分情况下我们的代码在linux服务器端,我们本地工作端都在windows,所以为了方便开发,需要搭建下远程开发环境。
我一般是vscode开发,source insight调试,这里主要针对vscode ssh远程环境说明(小白同事在线尝试了数十种方法仍然存在问题,遂把这个环境搭建流程给他梳理下)
0 环境
- 本地windows已安装vscode(默认已安装)
- 插件:Remote-SSH
- ssh配置
按照图示步骤
打开配置文件
Host 192.168.2.121 (也可以写个别名,比如:linux server等)
HostName 192.168.2.121(linux服务器端ip)
User xxxxxx(用户名)
IdentityFile "C:\Users\<admin>\.ssh\id_rsa"(后面免密登录需要用到<用户名>)
1 vscode打开开发path
- 选择当前窗口连接服务器
- 选择服务器类型“linux”
右下角显示连接成功
- 文件选项下,选择打开文件夹
选择开发路径即可
2 免密登录
网上一般对这一步都是说了如何如何做,一堆步骤,还有很多人也不清楚原理,写的那是云里雾里的,有点不友好了,特别是对小白(哈哈哈),这里对免密登录简单说明下:
- 目标
毫无疑问是免密登录 - 原理
把windows客户端生成的公钥给到linux服务器,然后每次用私钥登录认证,公钥私钥连接匹配ok,从而实现免密登录。 - 实现过程
- 1 windows客户端,
- 找到这个
C:\Users\你的用户名\.ssh
文件夹,下面如果有id_rsa.pub
,复制公钥内容。 - 如果没有,则首先创建.ssh文件夹。然后进入git-bash或者cmd,在输入命令
ssh-keygen -t rsa
(命令选项可以自行上网搜索)接下来,三个回车默认即可创建成功。
- 找到这个
- 2 linux服务器端
- 找到
~/.ssh/authorized_keys
(如果没有自行创建)在最后一行将复制的公钥粘贴到文件中。 - 如果没有这个.ssh目录,同样使用
ssh-keygen
+ 一路回车,之后创建authorized_keys,粘贴公钥。
- 找到
至此就可以免密ssh登录linux服务器了。
打开终端,先通过ssh连接下,命令:
ssh <user_name>@<服务器ip>
- 3 问题
- 有可能还是需要输入密码,查看并修改下服务器 ~/.ssh和 ~/.ssh/authorized_keys的访问权限,必须分别是700和600,也就是rwx------,rw-------。如果不是则更改:
chmod 700 ~/.ssh
、chmod 600 ~/.ssh/authorized_keys
- 4 重新登录,发现不用输入密码了。
- 5 vscode remote ssh免密登录
- 参考第0节中ssh配置,将
IdentityFile "C:\Users\<admin>\.ssh\id_rsa"
(< admin >中是改成你自己的用户名)写入到ssh的配置文件中
- 参考第0节中ssh配置,将