vscode 插件 remote-ssh的安装及使用

文章目录

    • vscode 插件 remote-ssh的安装及使用
    • windows VSCode(clangd+remote-ssh) linux(clangd server) 开发环境
    • 问题
      • 问题1 : getPlatformForHost was canceled
      • 问题2 : host 主机不能联互联网
      • 问题3 : 每次都要输入密码

vscode 插件 remote-ssh的安装及使用

需要用到的东西
    1. remote-ssh 插件(在vscode安装)
    2. OpenSSH client(自己安装)
    
需要提前配置的东西 // 实测,什么都不配置也行!!!
    1.需要在本地cmd通过openssh client连接一次, 产生 /cygdrive/c/Users/SWS/.ssh/known_hosts
    	// 该步骤不做也可以,不做的话会有提示框要你输入yes
    	// 如果你不及时输入,就会连接失败! 
    2.需要配置 remote-ssh 插件的三个项,配置结果如下
    	// 实测,什么都不配也行
    	// 但是你要确保他能找到 ssh.exe , 能及时在对话框中输入 platform
        {
            "remote.SSH.path": "C:\\Windows\\System32\\OpenSSH\\ssh.exe",
            "remote.SSH.configFile": "C:\\Users\\SWS\\.ssh\\config",
            "remote.SSH.remotePlatform": {
                "192.168.1.8": "linux"
            }
        }
操作流程:
	F1  add new ssh host // 输入 ssh [email protected] -p 22
    F1  connect to host 
    	// 会提示你输入 yes
    	// 会提示你输入 platform
    	// 会提示你输入 密码

本质流程:ssh(可以来自OpenSSH) 建立链接,之后用ssh host 的 wget下载一个 vscode-server, 解压并运行
	中间输入多次密码,所以最好用 "密钥认证" 方式登陆
	 // 注意,他可能随时弹出让你输入密码的窗口

windows VSCode(clangd+remote-ssh) linux(clangd server) 开发环境

在这里建立了 ubuntu 本地vscode 使用clangd 阅读代码
更进一步 . 基于 本文 , 可以实现 在 windows vscode 使用 ssh 插件和 clangd 插件. 阅读 ubuntu的 代码

问题

问题1 : getPlatformForHost was canceled

  • 不配置 remote.SSH.remotePlatform 会造成长时间卡死后返回连接失败

v0.103.2023051015 这个版本,会提示你输入(一定要注意对话框),如果你看不见并没有及时输入platform,就会报这个错

[13:41:48.397] Install and start server if needed
[13:42:11.279] getPlatformForHost was canceled // 重点log
[13:42:11.283] Resolver error: Error: Connecting was canceled
  • 解决方案
在key中添加 192.168.1.8 ,在value 中添加 linux ,然后点击添加
192.168.1.8 是你要ssh的目标机器, linux是 你目标机器的平台类型
添加后,生成的配置文件如下
{
    "remote.SSH.remotePlatform": {
        "192.168.1.8": "linux"
    }
}

vscode 插件 remote-ssh的安装及使用_第1张图片

问题2 : host 主机不能联互联网

不管怎么样,两侧(client 或者 server)要有一侧有互联网
如果两侧都没有互联网,就需要考虑离线配置了。
下面的配置,会把下载动作放到 ssh client 执行,而不是 ssh server。

在这里插入图片描述

问题3 : 每次都要输入密码

每次连接服务器,或者打开文件夹都需要输入一遍密码,很麻烦,解决方案如下
	step1.
		客户端机器执行 bash ssh-keygen -t rsa -b 4096 一路回车,生成 ~/.ssh/id_rsa.pub 
		将该文件拷贝到服务器的 ~/.ssh 下并且命名为 authorized_keys
	step2.
		开启sshd服务的 公钥认证 选项
		/etc/ssh/sshd_config 文件添加如下配置并重启sshd
		PubkeyAuthentication yes
		// 注意 : 只要没有显示的配置 PubkeyAuthentication no , 就是支持 公钥认证
		// 即默认支持 公钥认证 , 在 OpenSSH_8.9p1 Ubuntu-3ubuntu0.1 验证
使用ssh-copy-id自动拷贝 id_rsa.pub 到 server 的 authorized_keys
	ssh-copy-id -p 22 suweishuai@192.168.1.250
		// ssh-copy-id 不存在: https://www.cnblogs.com/zhouzhihao/p/17087666.html	
		// id_dsa.pub, or id_rsa.pub, or identity.pub .本机有这三个公钥文件,默认拷贝identity.pub
在服务器上新增多个client的公钥
	在 authorized_keys 文件最后一行后添加新的就行了
	echo /path/to/client/id_rsa.pub >> serverip:~/.ssh/authorized_keys
secureCRT 是怎么做自动ssh的
	每次自动输入密码

vscode 插件 remote-ssh的安装及使用_第2张图片

  • ssh 相关文件
.ssh
$ ls
config*  id_rsa*  id_rsa.pub*  known_hosts*

config 中记录了 之前保存的 server 信息,包括网址 用户名 端口 
id_isa.pub 是ssh-keygen生成的, 记录了 公钥
id_isa 是 ssh-keygen 生成的 , 记录了 私钥
known_hosts 记录了 登陆过的 ssh server 的信息

ssh-keygen 会在家目录生成了两个文件: // 注意 : cygwin 的 家目录 和 cmd.exe 的家目录 不是同一个目录!!!
	私钥文件(默认为 id_rsa):
		私钥文件是用户自己保存的,不应该泄露给其他人。
		它通常被存储在用户主目录下的 .ssh 目录中。
		私钥文件用于对 SSH 连接进行身份验证。
	
	公钥文件(默认为 id_rsa.pub):
		公钥文件是用户将其提供给其他人或服务器的文件。
		公钥文件可以安全地共享给其他人,因为它不包含私钥信息。
		公钥文件需要在服务器上添加到 .ssh/authorized_keys 文件中,以便用户可以使用私钥进行身份验证

你可能感兴趣的:(杂七杂八总览,vscode)