环境介绍

服务器:腾讯云 + centos + onestack搭建好的lnmp环境

本地:mac

安装openssh

sudo yum install openssh-client openssh-server openssh-sftp-server

配置

ssh方式连接sftp的配置文件在/etc/ssh/sshd_config, 可以在该文件指定端口号和相关参数。修改配置后需要重启ssh

  • centos: systemctl restart sshd
  • ubuntu: service restart ssh

命令行连接sftp

本地终端执行:

sftp -P22 root@{ip地址}
# 设置了密码的需要输入登录密码。

连接成功后默认进入的是登录用户的用户目录,root用户进入到/root目录,admin用户进入到/home/admin目录。

问题:vscode 无法同步

初始配置

{
"name": "{服务器ip}",
"host": "{服务器ip}",
"protocol": "sftp",
"port": 22,
"username": "root",
"password": "{对应的用户密码}",
"remotePath": "/data/wwwroot/www.i2arch.tech/frontend",
"uploadOnSave": true,
"ignore": [".vscode", ".git", ".DS_Store", "node_modules", "vendor"]
}

问题

终端连接成功后,配置sftp sync插件,但是上传和下载时提示Permission Denied

问题分析

由于我的服务器上root用户配置了禁用密码登录,只能使用ssh登录,所以不用设置password项,即使设置了也是无效的。而sftp的配置默认加载的私钥文件是~/.ssh/id_rsa。而我设置连接服务器的秘钥文件是~/.ssh/github_rsa

调整后:

{
"name": "{服务器ip}",
"host": "{服务器ip}",
"protocol": "sftp",
"port": 22,
"username": "root",
"remotePath": "/data/wwwroot/www.i2arch.tech/frontend",
"privateKeyPath": "/Users/kameila/.ssh/github_rsa",
"uploadOnSave": true,
"ignore": [".vscode", ".git", ".DS_Store", "node_modules", "vendor"]
}

此后便可以成功同步服务器文件。

备注

起初服务器搭建sftp参考了教程Linux 配置SFTP,配置用户访问权限,按操作创建单独的sftp用户组sftp-users,单独的sftp用户admin,单独的文件同步目录/home/admin,等等。但是操作完有一系列问题。

问题1: 单独的文件同步目录/home/admin需要设置成sftp用户组和用户的访问权限,但是我的web服务器nginx的目录是/data/wwwroot/www.i2arch.tech/frontend,并且nginx配置里面需要web目录的权限用户组和用户是www。这导致sftp同步文件之后还需要考虑方案来让nginx服务器直接能够访问sftp同步目录。

对于sftp同步目录nginx的web目录不一致的问题还可以通过修改nginx虚拟主机配置文件的根目录或者建立软链的方式解决,但是目录权限的问题却没有想到好的办法。

经过一系列尝试以后,最后想着与其修改nginx的配置重定义根目录用户组和用户,不如通过修改sftp组名和用户名的方式调整,并且后来查看公司sftp的配置文件,发现公司的这个配置文件并没有重新定义用户组和用户,所以感觉好像没必要创建单独的组合用户,于是索性没再按照上述教程中的步骤,直接通过root或admin用户访问。

绕了一大圈的感觉,但是不知道这种方式对于企业级项目会不会存在安全隐患,目前个人服务器上使用对于安全的要求没有那么大,先这样使用,如果有问题再做调整。

vscode使用sftp同步服务器文件的更多相关文章

  1. PHPstorm配置同步服务器文件

    一.配置服务器 1.连接配置 打开菜单栏 Tools -> Deployment -> Configuration 点击 + 选择 SFTP,并填写相关服务器信息: Type:连接类型,这 ...

  2. phpstorm同步服务器文件

    配置服务器 1.连接配置 打开菜单栏 Tools -> Deployment -> Configuration 点击 + 选择 SFTP,并填写相关服务器信息: Type:连接类型,这里选 ...

  3. windows系统下用VScode配置远程编辑服务器文件的环境!通过Rmate方法

    虽然公司电脑win可以通过Xshell通过SSH远程连接家中内网linux服务器了,但是只能用vim编辑文件有点不爽. 于是上网查询,windows下使用vscode远程编辑服务器文件的办法.参照博文 ...

  4. 通过ftp同步服务器文件:遍历文件夹所有文件(含子文件夹、进度条);简单http同步服务器文件实例

    该代码主要实现,指定ftp服务地址,遍历下载该地址下所有文件(含子文件夹下文件),并提供进度条显示:另外附带有通过http地址方式获取服务器文件的简单实例 废话不多说,直接上代码: 1.FTPHelp ...

  5. 用PHPstorm同步服务器文件断开连接

    使用同步功能,PHPstorm好像会一个一个去对比服务器上的文件,导致频繁请求建立连接,服务器本地安全策略做了屏蔽,所以进入黑名单后就无法连接了

  6. VPS服务器利用WINSCP软件进行SFTP管理服务器文件

    虽然我使用VPS时间也不是很久,但是我善于进行统计和分析,从我在的一些VPS交流QQ群中,可以看到基本上使用搬瓦工VPS的站长群中新手较多,甚至很多人都搞不明白VPS与V-P-N的区别都直接选择VPS ...

  7. Visual Studio Code中设置sftp同步代码到服务器

    ## **前言** - 绝对的大佬才会直接在Linux下用vim写代码,我等小白只能通过IDE来了,所以将代码同步到服务器上就很重要了.使用vs code设置好sftp就可以实现这一功能. - 设置之 ...

  8. 使用rsync+inotify同步两台服务器文件

    目标功能:将B服务器文件同步到A服务器 A服务器rsyncd.conf配置 权限600 A服务器rsyncd.pas文件配置  权限600 同步文件路径 /data/wwwroot/shen/  权限 ...

  9. BAT实现服务器文件同步

    服务器文件同步有很多工具,例如 GoodSync.rsync.BitTorrent Sync等……其实WINDOWS下自带了一个文件同步利器:ROBOCOPY.它是一个命令行的目录复制命令,自从Win ...

随机推荐

  1. Java 调用http接口(基于OkHttp的Http工具类方法示例)

    目录 Java 调用http接口(基于OkHttp的Http工具类方法示例) OkHttp3 MAVEN依赖 Http get操作示例 Http Post操作示例 Http 超时控制 工具类示例 Ja ...

  2. 实测总结 挂载远程文件夹方案 smb ftp sftp nfs webdav

    挂载远程文件夹的方法有: 1.smb 2.ftp 3.sftp 4.nfs 5.webdav 1.smb windows局域网使用的协议,windows网上邻居发现的共享文件夹即使用的smb协议,可以 ...

  3. 解决OneNote同步出错

    问题: onenote同步出现黄色叹号. 解决: 分析: 对每个分区进行设置密码,不能设置的证明该分区有问题.(可能不只一个分区卡同步) 解决方法: 1,将有问题的分区分制一份,然后删掉原来的分区 2 ...

  4. 《统计学习方法》极简笔记P5:决策树公式推导

    <统计学习方法>极简笔记P2:感知机数学推导 <统计学习方法>极简笔记P3:k-NN数学推导 <统计学习方法>极简笔记P4:朴素贝叶斯公式推导

  5. Python爬虫视频教程

    ├─第1章_[第0周]网络爬虫之前奏 │ ├─第1节_"网络爬虫"课程内容导学 │ │ 第1部分_全课程内容导学.mp4 │ │ 第2部分_全课程内容导学(WS00单元)学习资料. ...

  6. 写论文的第二天 Hbase集群搭建

    日志______2019.1.24 Hbase分布式搭建 注意:hbase的使用基于hadoop,开启以及关闭需要注意顺序,由于我是的是自带的zookeeper,说以开启关闭顺序应如下 启动:hado ...

  7. vue自定义组件中的v-model简单解释

    在使用iview框架的时候,经常会看到组件用v-model双向绑定数据,与传统步骤父组件通过props传值子组件,子组件发送$emit来修改值相比,这种方式避免操作子组件的同时再操作父组件,显得子组件 ...

  8. Appium+Python+Genymotion ------环境配置

    前言 之前总是在找方向,也研究了很多的工具,终于找到了适合自己的一套,打算把学习的过程做一个记录,给自己加深印象,也希望能给其他人一些帮助. 一.工具准备 1.Appium  //  http://a ...

  9. textRNN & textCNN的网络结构与代码实现!

    1. 什么是textRNN textRNN指的是利用RNN循环神经网络解决文本分类问题,文本分类是自然语言处理的一个基本任务,试图推断出给定文本(句子.文档等)的标签或标签集合. 文本分类的应用非常广 ...

  10. 持续集成高级篇之Jekins脚本参数化构建

    系列目录 本系列已经很久没有更新了,接前面基础篇,本系统主要介绍jenkins构建里的一些高级特性.包括脚本参数化,Jenkins Pipeline与及在PipeLine模式下如何执行常见的传统构建任 ...