VSCode Remte-SSH远程开发+免密登录

2 篇文章 0 订阅
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命令生成的密钥设置免密登录失败,具体原因未知。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值