【工具类】ssh,remote-ssh插件和sftp插件

发布于:2025-05-15 ⋅ 阅读:(16) ⋅ 点赞:(0)

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