php sftp上传图片,SFTP远道文件上传
SFTP远程文件上传
远程服务器remote_host=192.168.29.142
用户为remote_www,
用户当前目录为/home/remote_www
本地服务器local_host=192.168.29.135
用户为local_www
用户当前目录为/home/local_www
1.首先查看在本地服务器用户当前目录下是否有.ssh目录,即是否存在/home/local_www/.ssh/ 如果没有.ssh目录,则创建:
$mkdir .ssh
在local_host机下生成公钥/私钥对。
$ssh-keygen -t rsa -P ''
-t表示密钥类型
-P表示密码,-P ''就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车。
该命令将在/local_www/.ssh目录下面产生一对密钥id_rsa和id_rsa.pub。
一般采用的ssh的rsa密钥:
id_rsa 私钥
id_rsa.pub 公钥
下述命令产生不同类型的密钥
ssh-keygen -t dsa
ssh-keygen -t rsa
ssh-keygen -t rsa1
Generating public/private rsa key pair.
生成公钥/私钥rsa密钥对。
Enter file in which to save the key (/home/local_www/.ssh/id_rsa):
输入要保存密钥的文件
Your identification has been saved in /home/local_www/.ssh/id_rsa.
您的身份已保存在/home/local_www/.ssh/id_rsa中。
Your public key has been saved in /home/local_www/.ssh/id_rsa.pub.
您的公开金钥已储存在/home/local_www/.ssh/id_rsa.pub中。
The key fingerprint is:
关键指纹是:
ac:a7:4b:bd:3e:ae:a6:de:0f:b8:43:fe:c3:24:2d:b5 www@gold-dev002
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| .. |
| o .S |
| +.Eo |
| o.=+ o |
| o+++.. |
| .+=*B=. |
+-----------------+
2.查看在远程sftp服务器用户当前目录是否有.ssh目录,即是否存在/home/remote_wwwr/.ssh/ 如果没有.ssh目录,则创建:
$mkdir .ssh
3.将本地服务器生成的公钥上传到远程sftp服务器的/home/remote_www/.ssh/下
$scp id_dsa.pub remote_www@remote_host:/home/remote_www/.ssh/
4.查看在远程sftp服务器用户当前目录的.ssh目录是否有authorized_keys文件如果有则把新生成的公钥追加到authorized_keys:
$cat id_dsa.pub >> authorized_keys
(将id_rsa.pub的内容追加到authorized_keys中)
如果没有则把公钥id_dsa.pub重命名为authorized_keys:
$mv id_dsa.pub authorized_keys
$chmod 644 authorized_keys
修改文件的读写权限
5.测试在本地服务器上,以local_www登录
$sftp remote_www@remote_host如果成功则进入sftp服务器
sftp>
如果不成功,则提示要输入密码
简单测试代码:
function fileUpload($fileName)
{
$sftp = 'ssh2.sftp://';
//远程host
$remoteServer = 'remote.com';
//远程服务器端口
$remoteServerPort = 22;
//远程服务器用户名
$remoteServerUsername = 'www';
//本地公钥文件
$pubkey = '/local/id_rsa.pub';
//本地私钥文件
$prikey = '/local/id_rsa';
//连接SSH2服务器
$resConnection = ssh2_connect($remoteServer, $remoteServerPort);
if (!is_resource($resConnection)) {
die('连接失败');
}
//上传到远程服务器的绝对目录
$remotePath = '/data/other/' . $fileName;
//本地服务器的绝对目录
$localPath = '/data/other' . $fileName;
//密钥身份校验
if (ssh2_auth_pubkey_file($resConnection, $remoteServerUsername, $pubkey, $prikey)) {
//初始化SFTP子系统
$resSFTP = ssh2_sftp($resConnection);
if (!is_resource($resSFTP)) {
die('初始化SFTP子系统');
}
} else {
die('密钥身份校验');
}
if (!file_exists($sftp . $resSFTP . $remotePath)) {
$mkdir = ssh2_sftp_mkdir($resSFTP, $remotePath, 0755, true);
if (!$mkdir) {
die('文件夹创建失败');
}
}
//通过SCP发送文件
$sendbol = ssh2_scp_send($resConnection, $localPath, $remotePath, 0777);
if (!$sendbol) {
die('上传文件失败');
}
//没有关闭SSH会话,内部缓冲区不会被刷新,文件将不写入到磁盘
ssh2_exec($resConnection, 'exit');
return true;
}
php sftp上传图片,SFTP远道文件上传相关推荐
- Mac OS 使用命令(scp/sftp)将本地文件上传到远程 Linux 服务器主机或者从远程主机下载文件到本地主机
文章目录 一.使用 scp 命令 (一)将本地的文件上传(上载/复制)到远程主机的指定目录下 (二)将本地主机的目录内容(含目录本身)上传到远程主机指定的目录下 1.将本地主机桌面上的目录 www 及 ...
- java jsch下载文件,JSch使用sftp协议实现服务器文件上传下载操作
Jsch是什么? JSch 是SSH2的一个纯Java实现.它允许你连接到一个sshd 服务器,使用端口转发,X11转发,文件传输等等.你可以将它的功能集成到你自己的 程序中.同时该项目也提供一个J2 ...
- tinymce上传图片php,图片文件上传
此页更新时间:2020-10-28 11:46 配置选项列表: 如要快速上手,可以阅读<简介与入门:上传图片和文件>这个章节,里面包含完整的上传代码示例. automatic_upload ...
- springboot 上传图片大小_springboot 文件上传大小配置的方法
springboot上传文件大小的配置我这里记录两种,一种是设置在配置文件里只有两行代码,一种是加个Bean 首先第一种: application.properties中添加 spring.http. ...
- php 上传图片 ftp,ftp文件上传_php ftp文件上传
摘要 腾兴网为您分享:php ftp文件上传,有道英语,央视影音,学习计时,微光等软件知识,以及天天小视频,24小时时间计算器,oki5500f打印机驱动,中天期货,差旅天下,filegee企业文件同 ...
- java上传图片损坏_iview 文件上传二进制文件提示文件已经损坏
使用iview的 Upload组件结合后端spring mvc做的文件上传,发现文本文件格式上传没问题,但上传其他格式的,比如 doc.xls.jar等格式文件,上传到后端后,打开均会提示文件已经损坏 ...
- php实现sftp上传文件,PHP-sftp文件上传
PHP的sftp文件上传:在框架thinkphp5中使用: 主要用到的sftp函数如下: ssh2_connect(host,port) 链接信息 ssh2_auth_password($con,us ...
- Python实现阿里云aliyun服务器里的文件上传与下载
Python实现阿里云服务器里的文件上传与下载 Python实现阿里云服务器里的文件上传与下载 背景: 正文: 预备环境: 构想: 实现: 注意: 结尾 018.4.15 背景: 老实说,因为现实的各 ...
- PHP-sftp文件上传
个人博客地址https://xgs888.top/post/view?id=57 PHP的sftp文件上传:在框架thinkphp5中使用: 主要用到的sftp函数如下: ssh2_connect(h ...
最新文章
- php 函数:func_get_args()、func_get_arg()与func_num_args()
- [实变函数]4.2 Egrov 定理
- 数据中心空调施工工序工艺管理要点
- 01_Nginx安装,nginx下部署项目,nginx.conf配置文件修改,相关文件配置
- JAVA-2NIO之Channel
- 第2年,倒数第3天,1.5万票,感动!
- 找出出现次数最多的字母
- java 服务器 时间_java 获取服务器的时间,年月日时分秒
- 百度OCR文字识别API使用心得===com.baidu.ocr.sdk.exception.SDKError[283604]
- 深度学习系列(二)【人类语言处理--语音辨识】
- poj 1958 Strange Towers of Hanoi dp,需要仔细读题
- 15.企业应用架构模式 --- 分布模式
- 机器学习为您揭秘雾霾怎么形成
- Java知识点复习:Day14
- 山东大学计算机专业知名教授,胡思煌 山东大学主页平台管理系统--胡思煌
- 科学计算库Pandas的使用(附思维导图)
- uniapp 图片上传与展示
- 【多元统计分析】一、多元统计分析概述
- IDEA 出现 Exception in thread main java.lang.OutOfMemoryError: Java heap space 解决方式
- 基于VCS使用VPI+PLI/DPI在verilog中调用C程序进行cover property驱动的仿真控制
热门文章
- 激励人生成功的10句经典中英文
- HTML和CSS实现京东首页(html和css详解)
- Xposed插件开发环境配置
- C++ 虚函数表 vfptr
- 十大常见web漏洞及防范
- 淘宝电商用户行为数据分析及可视化—基于MySQL/Tableau/PPT(含分析报告及代码)
- JAVA程序包装成桌面应用程序
- libapache2-mod-php5 apache,Debian Etch libapache2-mod-php5 with bundled libgd
- PC微信更改文件默认保存位置后聊天记录丢失
- 利用python爬取飞猪信息_Python---20行代码爬取斗鱼平台房间数据(下)-阿里云开发者社区...