赞
踩
需要用到的东西 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 xxx@192.168.1.8 -p 22 F1 connect to host // 会提示你输入 yes // 会提示你输入 platform // 会提示你输入 密码 本质流程: 用 ssh(可以来自OpenSSH) 建立链接,之后用ssh host 的 wget下载一个 vscode-server, 解压并运行 中间输入多次密码,所以最好用 "密钥认证" 方式登陆 // 注意,他可能随时弹出让你输入密码的窗口
在这里建立了 ubuntu 本地vscode 使用clangd 阅读代码
更进一步 . 基于 本文 , 可以实现 在 windows vscode 使用 ssh 插件和 clangd 插件. 阅读 ubuntu的 代码
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"
}
}
不管怎么样,两侧(client 或者 server)要有一侧有互联网
如果两侧都没有互联网,就需要考虑离线配置了。
下面的配置,会把下载动作放到 ssh client 执行,而不是 ssh server。
每次连接服务器,或者打开文件夹都需要输入一遍密码,很麻烦,解决方案如下
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的
每次自动输入密码
.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 文件中,以便用户可以使用私钥进行身份验证
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。