1. ssh免密登录
# 生成密钥对
ssh-keygen -t rsa -C "username@domain.com"
# 上传ssh客户端公钥到ssh服务端
# 方式1:使用ssh-copy-id自动上传
ssh-copy-id -i /path/to/id_rsa.pub user@192.168.1.102
# 方式2:手动添加ssh客户端公钥到ssh服务端
ssh user@192.168.1.102 # 登录ssh服务端
echo "ssh客户端公钥id_rsa.pub内容" > ~/.ssh/authorized_keys
2. vscode remote-ssh插件
2.1 工作原理
vscode 连接到远程服务器后,会自动在远程服务器下载对应版本的 vscode-server(也可以选择在本地下载好vscode-server用rsync传到服务器)。vscode-server 在远程服务器上的位置:~/.vscode-server/bin/{commit-id}/ 。vscode实例的commit-id和远程服务器的vscode-server的commit-id要保持一致才能正常运行。
# 查看本地vscode的commit-id
code --version
版本号:1.100.1
commit-id:91fa95bccb027ece6a968589bb1d662fa9c8e170
指令集:x64
# 检查服务器commit-id
cd ~/.vscode-server/bin
ls
1a5daa3a0231a0fbba4f14db7ec463cf99d7768e
2.2 补充
• 如果ssh服务端无法连接外网,应该本地下载server后使用rsync上传到ssh服务端。将Remote.SSH: Local Server Download设置为always
• 开多个vscode窗口时避免每次都发起ssh连接,让多个窗口公用ssh连接。将Remote.SSH: Use Local Server设置为true。
3. sftp插件
https://marketplace.visualstudio.com/items?itemName=Natizyskunk.sftp
3.1 配置
{
"name": "jetson",
"host": "192.168.1.102",
"protocol": "sftp",
"port": 22,
"username": "user",
"remotePath": "/remote/path",
"password": "passwd",
"uploadOnSave": true, // vscode 每次保存文件都会上传文件
"downloadOnOpen": true, // 远端文件只要被打开,就会下载文件到本地
"syncOption": { // sync操作配置
"delete": true, // sync时,源端那些不在目标端出现的文件将被删除
"update": true // sync时,只要上传源端有更新的文件到目标端
},
"ignore": [
"/.vscode",
"/.git",
"/.cache"
]
}
3.2 补充
• watcher所有文件时要设置uploadOnSave为false