1. vs code安装ssh插件
在vscode的
extension
输入
ssh
,点击安装。安装完毕后重新加载(或者重新启动),能看到界面左侧侧边栏多了一个图标。
2. 远程服务器安装vscode server
接下来是本篇博客的重点了,同事借助GPT写的安装脚本,非常好用,才写下了这篇博客哈哈哈哈!
这里将这个安装脚本分成了两步,一步是给远程服务器下载与你本地vscode相对应版本的vscode server,另一步是安装使用。
需要注意的是:如果你本地的vscode版本发生了升级等变更操作,远程服务器的vscode server也要进行相应变更,最好是借助这个脚本重新安装一次。
2.1 安装依赖程序
需要本地安装
sshpass
和
wget
两个程序,用于在本地启动脚本下载安装资源包到远程服务器
sudoaptinstall sshpass wget# 需要安装以上两个程序
2.2 下载与本地vscode对应vscode server版本
打开你本地
vscode
,
菜单栏->帮助->关于
,找到
vscode
版本的
commit id
,复制然后修改到下面脚本中:
同时修改你要操作的远程服务器的ip、账号和密码,需要注意的是你的远程服务器可能无法联网,那么可以在本地下载好资源包然后copy到远程服务器的
~/.vscode-server/bin
目录下(此目录会在执行脚本1.sh后生成,当然你也可以自己创建):
wget"https://update.code.visualstudio.com/commit:abd2f3db4bdb28f9e95536dfa84d8479f1eb312d/server-linux-x64/stable"#本地下载
假设以下脚本名为
1.sh
,在终端执行:
bash 1.sh
,进行下载:
#!/bin/bash# sudo apt install sshpass wget # 需要本地安装以上两个程序commit_id="abd2f3db4bdb28f9e95536dfa84d8479f1eb312d"# 你的vscode版本 菜单栏->帮助->关于host="192.168.xxx.xxx"#替换为你需要安装的PC host名user="xxx"# 在远程host中你的账号password="xxxxxx"# 将xxx替换为实际密码pkg_name="stable"host_dir=".vscode-server/bin"# # 下载 Visual Studio Code 服务器wget"https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/${pkg_name}"#wget "https://update.code.visualstudio.com/commit:abd2f3db4bdb28f9e95536dfa84d8479f1eb312d/server-linux-x64/stable"
2.3 安装
假设以下脚本名为
2.sh
,在终端执行:
bash 2.sh
,执行脚本完成安装:
#!/bin/bash# sudo apt install sshpass wget # 需要安装以上两个程序commit_id="abd2f3db4bdb28f9e95536dfa84d8479f1eb312d"# 你的vscode版本 菜单栏->帮助->关于host="192.168.xxx.xxx"#替换为你需要安装的PC host名user="xxx"# 在远程host中你的账号password="xxxxxx"# 将xxx替换为实际密码pkg_name="stable"host_dir=".vscode-server/bin"# # 下载 Visual Studio Code 服务器#wget "https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/${pkg_name}"#wget "https://update.code.visualstudio.com/commit:abd2f3db4bdb28f9e95536dfa84d8479f1eb312d/server-linux-x64/stable"
sshpass -p"${password}"ssh"${user}@${host}""mkdir ~/.vscode-server;mkdir ~/${host_dir}"# 将文件复制到远程服务器
sshpass -p"${password}"scp"${pkg_name}""${user}@${host}:~/${host_dir}/"# 解压文件并将其移到正确的目录
sshpass -p"${password}"ssh"${user}@${host}""tar -xvf ~/${host_dir}/${pkg_name} -C ~/${host_dir}; mv ~/${host_dir}/vscode-server-linux-x64 ~/${host_dir}/${commit_id}"# 同步本地扩展到远程服务器
sshpass -p"${password}"rsync-avz--progress ~/.vscode/extensions/ "${user}@${host}:~/.vscode-server/extensions/"
之后就可以在vscode中登录到远程服务器,进行远程编辑使用了。
3. 免密登录
参考博客:【Linux基础】SSH免密登录的第三节[SSH免密登录],照着操作即可完成ssh免密登录。
通过对SSH两种安全验证机制的了解,可以发现使用口令登录的方式需要输入密码,而使用公钥登陆的方式避免了输入密码这个步骤。因此SSH基于密钥的安全验证方式可以实现SSH远程免密登录。实现SSH免密登录的步骤如下:
3.1 本地生成密钥对
使用
ssh-keygen
生成一对密钥,生成的私钥将存放在用户目录下的
.ssh/id_rsa
中,公钥将存放在用户目录下的
.ssh/id_rsa.pub
中生成的两个密钥文件:
生成的两个密钥文件:
3.2 将公钥放入服务器中
登录服务器,将刚刚在本机生成的公钥(
.ssh/id_rsa.pub
)复制到服务器的
~/.ssh/authorized_keys
文件中
使用
cat
指令查看
authorized_keys
文件,
cat authorized_keys
可以看到公钥已经被写入。
注意:
~/.ssh/authorized_keys
文件中可以存放多个主机的公钥,每个公钥后面会使用主机名来区分
3.3 免密登录服务器
完成以上设置后在本机使用SSH可以免密登录服务器
版权归原作者 AbnormalJie 所有, 如有侵权,请联系我们删除。