赞
踩
之前一直使用jupyter lab在服务器上进行代码编写,今天尝试了一下使用VScode来进行远程代码编写,特此记录。
首先安装Remote-ssh插件。
然后,使用Ctrl + Shift + P打开命令面板,输入connect to host,选择第一个命令:
选择Add New SSH Host
然后按提示输入远端地址和登录账户即可。
这里选择我们计算机用户名目录下的ssh配置文件,如果没有的话,需先将电脑的ssh功能打开,Win10功能中已支持ssh,可以很方便开启。参考:安装OpenSSH,link
然后右键选择连接即可。
在进行完如上配置后,我在第一次连接远端主机时一切正常。但后续添加其他远端节点时,发现VScode连接时自动使用Windows计算机自己的主机名而不是我配置在文件中的登录账户名。查找了一些资料后,找到了一个解决方法,记录如下:
首先,我们打开C:/Users/your_username/.ssh/config这个文件,然后把里面所有的Host后的名称加上我们的登录账户名。示例如下:
Host 10.10.10.1
User usename
HostName 10.10.10.1
改为
Host usename@10.10.10.1
User usename
HostName 10.10.10.1
这样修改之后就可以保证每次使用配置的账户名称进行登录。
以上配置好之后,每次连接远端主机都需要输入密码,十分麻烦。我们可以配置免密登录来方便连接。
首先,需要使用ssh-keygen -t rsa 在本地用户目录下(即C:/Users/your_username/.ssh/)生成一对密钥,id_rsa和id_rsa.pub。如果本地目录已经有该文件则不用在重新生成。可以参考 vscode避免每次ssh都输入密码
然后,我们将生成的id_rsa.pub文件中的内容追加到远端服务器的/home/username/.ssh/目录下的authorized_keys(如果没有需要自己创建)文件中。之后就可以实现免密登录。
经过上述配置后,几天内我的VScode是正常的,但是由于电脑用户名设置为中文,导致了一些错误。于是在我将Windows用户名改回英文后,VScode一直连接不上。且终端中的报错信息一直为:‘Bad owner or permissions’ 以及 vscode"远程主机远程 ssh 过程试图写入的管道不存在"。
经过查找资料,发现是WIn10的OpenSSH有问题。解决方法为将系统环境变量里的
%SystemRoot%/openssh
改为电脑上安装的git中的ssh路径,我的是:
D:\Program Files\Git\usr\bin
[1] Visual Studio Code Remote SSH uses Windows username instead of username in ssh_config, link
[2] win10 ssh 完美解决 ‘Bad owner or permissions’ 以及 vscode"远程主机远程 ssh 过程试图写入的管道不存在"问题, link
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。