VSCode Remote-SSH

VSCode:windows客户端远程linux服务器进行代码开发

  1. 环境准备

    windows客户端:安装和启动ssh服务,VSCode编辑器及Remote-SSH插件

    Linux客户端:安装和启动sshd服务

  2. 远程开发配置

    VSCode安装完Remote-SSH插件后配置SSH configuration file,如下:

    # Read more about SSH config files: https://linux.die.net/man/5/ssh_config
    Host 192.168.1.129			# ssh时的替代名
        HostName 192.168.1.129	# 服务器IP或域名
        User admin				# 登录用户名
    # 一般配置前三项即可  
        Port 22	# 端口号, 默认为22
        IdentityFile ~/.ssh/id_rsa	# 私钥文件路径
        UserKnownHostFile ~/.ssh/known_hosts	# 用来缓存通过认证的远程主机的密钥
    

    至此可以使用VSCode Remote-SSH登录Linux服务器进行代码开发,但每次登录或重启窗口均需要输入密码,可以设置免密登录。

  3. 免密登录配置

    (1) windows git bashcmd窗口下执行ssh-keygen -t rsa生成密钥对id_rsa, id_rsa.pub;

    (2) 将生成的公钥文件id_rsa.pub拷贝至Linux服务器的~/.ssh目录下,并重命名为authorized_keys;也可以通过ssh-copy-id命令拷贝公钥,如下:

    # 拷贝公钥文件id_rsa.pub至Linux服务器, 自动重命名为authorized_keys
    ssh-copy-id -i ~/.ssh/id_rsa.pub admin@192.168.1.129
    

    重启VSCode窗口时就可以通过密钥远程免密登录Linux服务器。

  4. 问题总结

    (1) Linux服务器网络不通时需手动下载vscode-server

    vscode-server下载地址: https://update.code.visualstudio.com/commit:$commit_id/server-linux-x64/stable

    其中: $commit_id为vscode-server的commit版本号, windows远程连接失败时可查看commit版本号

    ps: 本地VSCode更新时,vscode-server需要更新至对应版本

    (2) Remote-SSH时报错It is also possible that a host key has just been changed. >The fingerprint for the ECDSA key sent by the remote host is SHA256:...

    原因:ssh将每个通过认证的远程主机的公钥均缓存至~/.ssh/known_hosts文件中,当再次ssh访问时会核对公钥,若不同则产生上述警告信息。

    解决方法:删除windows客户端~/.ssh/known_hosts文件中该远程主机IP相关的rsa信息即可。

    (3) 免密登录配置时,windows客户端通过ssh-keygen命令生成密钥时尽量使用git bash窗口而不是cmd窗口,有时通过cmd窗口执行ssh-keygen命令生成的密钥设置免密登录失败,具体原因未知。

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐