一般要装php的ssh2扩展,比较麻烦。所以转念一想,为什么不用我们经常用的scp。但是scp跨服务器拷贝需要输入密码,这里就用到了一个工具试试sshpass,可以指定密码。
1、工具安装
ubuntu安装:
sudo apt-get install sshpass
mac安装:
试了brew一直报错,这里用源码安装。
下载:
wget http://sourceforge.net/projects/sshpass/files/sshpass/1.05/sshpass-1.05.tar.gz
解压:
tar xvzf sshpass-1.05.tar.gz
进入安装包:
cd sshpass-1.05
编译安装:
./configure
make&&make install
装完之后通过which sshpass找到路径
我这边路径是:/usr/local/bin/sshpass
配置完成之后就可以在php代码里面使用
exec('/usr/local/bin/sshpass -p your_password scp /deployment/1.txt your_name@your_host:your_path/1.txt');
注意这边的路径一定要用绝对路径,相对路径会报错。
对了还有密码不要放在代码里面,如果是laravel框架的话,要放在env中。