那既然不安全,为何要用到ftp呢?
由于lrzsz有必定的限制,如:不能传输大于4G的文件。也有使用阿里云机器 我用一台机器跳到另外一台机器,如今要用rzsz传数据 就会出问题!
解决方案:就是用ftp 查看ftp服务器上面的文件 并对服务器上面进行本地下载和上传;(大公司就会用git--版本管理工具 而后使用自动化工具发布平台发布)linux
centos上自带vsftpd yum install -y vsftpd useradd -s /sbin/nologin virftp vim /etc/vsftpd/vsftpd_login //内容以下,奇数行为用户名,偶数行为密码,多个用户就写多行 testuser1 aminglinux chmod 600 /etc/vsftpd/vsftpd_login db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db mkdir /etc/vsftpd/vsftpd_user_conf cd /etc/vsftpd/vsftpd_user_conf vim testuser1 //加入以下内容 local_root=/home/virftp/testuser1 ##定义虚拟用户家目录 anonymous_enable=NO ##不容许匿名用户访问 write_enable=YES ##可写 local_umask=022 ##定义新文件和目录的umask值,和系统umask值同样; anon_upload_enable=NO ##不容许匿名用户上传; anon_mkdir_write_enable=NO ##不容许匿名用户可写 idle_session_timeout=600 ##超过600s须要从新登陆 data_connection_timeout=120 ##数据传输超时时间120s max_clients=10 ##最大链接客户端10 mkdir /home/virftp/testuser1 touch /home/virftp/testuser1/aming.txt chown -R virftp:virftp /home/virftp vim /etc/pam.d/vsftpd //在最前面加上 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login vim /etc/vsftpd/vsftpd.conf 将anonymous_enable=YES 改成 anonymous_enable=NO 将#anon_upload_enable=YES 改成 anon_upload_enable=NO 将#anon_mkdir_write_enable=YES 改成 anon_mkdir_write_enable=NO 再增长以下内容 chroot_local_user=YES guest_enable=YES guest_username=virftp virtual_use_local_privs=YES user_config_dir=/etc/vsftpd/vsftpd_user_conf allow_writeable_chroot=YES systemctl start vsftpd //启动vsftpd服务
yum install -y lftp lftp ftpuser1@127.0.0.1 执行命令ls,看是否正常输出 若不正常查看日志/var/log/messages和/var/log/secure windows下安装filezilla客户端软件,进行测试
[root@Dasoncheng ~]# yum install -y vsftpd [root@Dasoncheng ~]# ls /etc/vsftpd/ ftpusers user_list vsftpd.conf vsftpd_conf_migrate.sh [root@Dasoncheng ~]# useradd -s /sbin/nologin virftp [root@Dasoncheng ~]# vim /etc/vsftpd/vsftpd_login user1 p@ssw0rd user2 123456 [root@Dasoncheng ~]# chmod 600 /etc/vsftpd/vsftpd_login [root@Dasoncheng ~]# db_load -T -t hash -f /etc/vsftpd/vsftpd_login /etc/vsftpd/vsftpd_login.db [root@Dasoncheng ~]# ls /etc/vsftpd/ ftpusers vsftpd.conf vsftpd_login user_list vsftpd_conf_migrate.sh vsftpd_login.db
[root@Dasoncheng ~]# mkdir /etc/vsftpd/vsftpd_user_conf [root@Dasoncheng ~]# cd /etc/vsftpd/vsftpd_user_conf [root@Dasoncheng vsftpd_user_conf]# vim user1 local_root=/home/virftp/user1 anonymous_enable=NO write_enable=YES local_umask=022 anon_upload_enable=NO anon_mkdir_write_enable=NO idle_session_timeout=600 data_connection_timeout=120 max_clients=10 [root@Dasoncheng vsftpd_user_conf]# mkdir /home/virftp/user1 [root@Dasoncheng vsftpd_user_conf]# touch /home/virftp/user1/gecz.txt [root@Dasoncheng vsftpd_user_conf]# chown -R virftp:virftp /home/virftp/ [root@Dasoncheng vsftpd_user_conf]# vim /etc/pam.d/vsftpd [root@Dasoncheng vsftpd_user_conf]# head -3 /etc/pam.d/vsftpd #%PAM-1.0 auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login ##添加的这下面两行是验证的密码配置文件; account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login ……
配置文件里面不要有空格,我就在chroot那一行吃了亏;git
[root@Dasoncheng ~]# vim /etc/vsftpd/vsftpd.conf anonymous_enable=NO ##将YES改成NO anon_upload_enable=NO ##将前面的#去掉,YES改成NO anon_mkdir_write_enable=NO ##将前面的#去掉,YES改成NO …… ##在尾部添加以下几行: chroot_local_user=YES guest_enable=YES ##开启映射 guest_username=virftp ##将虚拟用户映射到系统用户virftp virtual_use_local_privs=YES ##使用ftp虚拟用户 user_config_dir=/etc/vsftpd/vsftpd_user_conf ##定义虚拟用户配置文件目录; allow_writeable_chroot=YES [root@Dasoncheng ~]# systemctl start vsftpd
[root@Dasoncheng ~]# ps aux |grep vsftp root 41052 0.0 0.0 53216 576 ? Ss 14:31 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 41058 0.0 0.0 112664 968 pts/1 S+ 14:34 0:00 grep --color=auto vsftp [root@Dasoncheng ~]# netstat -lntp |grep ftp tcp6 0 0 :::21 :::* LISTEN 41052/vsftpd [root@Dasoncheng ~]# lftp user1@127.0.0.1 Password: lftp user1@127.0.0.1:/> ? ##列出当前可以使用的命令 !<shell-command> (commands) alias [<name> [<value>]] attach [PID] bookmark [SUBCMD] cache [SUBCMD] …… …… lftp user1@127.0.0.1:~> ls ##这个就是我以前建立的文件 -rw-r--r-- 1 1003 1003 0 Feb 26 06:41 gecz.txt lftp user1@127.0.0.1:/> get gecz.txt ##get下载,默认是当前目录 lftp user1@127.0.0.1:/> quit [root@Dasoncheng ~]# ls 1.txt anaconda-ks.cfg ccc logs wordpress-4.9.4-zh_CN.tar.gz aaa bbb gecz.txt wordpress
xshell链接ftp的协议是ssh,不须要安装ftp服务器 也和21端口没啥关系!shell
之因此用这个pure-ftpd搭建:主要是由于其轻便,简单(给客户,或小伙伴搭建首选);vim
yum install -y epel-release yum install -y pure-ftpd vim /etc/pure-ftpd/pure-ftpd.conf//找到pureftpd.pdb这行,把行首的#删除 systemctl stop vsftpd systemctl start pure-ftpd mkdir /data/ftp useradd -u 1010 pure-ftp chown -R pure-ftp:pure-ftp /data/ftp pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp pure-pw mkdb pure-pw list/userdel/usermod/passwd
[root@DasonCheng ~]# yun install -y epel-release ^C //这里我已经安装过了; [root@DasonCheng ~]# yum install -y pure-ftpd
[root@DasonCheng ~]# vim /etc/pure-ftpd/pure-ftpd.conf PureDB /etc/pure-ftpd/pureftpd.pdb //去掉前面的#号,使其生效 指定其密码配置文件;
[root@DasonCheng ~]# ps aux|grep ftp root 28769 0.0 0.0 52708 696 ? Ss 08:31 0:00 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf root 29489 0.0 0.0 112664 972 pts/1 S+ 10:41 0:00 grep --color=auto ftp [root@DasonCheng ~]# systemctl stop vsftpd // 由于vsftp和pure-ftp使用的都是21端口,因此关闭vsftpd; [root@DasonCheng ~]# systemctl start pure-ftpd [root@DasonCheng ~]# ps aux|grep pure-ftp root 29506 0.0 0.1 201916 1192 ? Ss 10:42 0:00 pure-ftpd (SERVER)
[root@Dasoncheng ~]# mkdir /data/ftp [root@Dasoncheng ~]# useradd -u 1010 pure-ftp [root@Dasoncheng ~]# chown -R pure-ftp:pure-ftp /data/ftp/ [root@Dasoncheng ~]# pure-pw useradd ftp_usera -u pure-ftp -d /data/ftp Password: Enter it again: [root@Dasoncheng ~]# pure-pw --help ^C [root@Dasoncheng ~]# pure-pw mkdb [root@Dasoncheng ~]# pure-pw list /userdel/usermod/passwd ftp_usera /data/ftp/./ [root@Dasoncheng ~]# touch /data/ftp/123.txt [root@Dasoncheng ~]# lftp ftp_usera@127.0.0.1 Password: lftp ftp_usera@127.0.0.1:~> ls drwxr-xr-x 2 1010 pure-ftp 21 Feb 26 16:07 . drwxr-xr-x 2 1010 pure-ftp 21 Feb 26 16:07 .. -rw-r--r-- 1 1010 pure-ftp 0 Feb 26 16:07 123.txt [root@Dasoncheng ~]# touch /data/ftp/456.txt [root@Dasoncheng ~]# lftp ftp_usera@127.0.0.1 Password: lftp ftp_usera@127.0.0.1:~> ls drwxr-xr-x 2 1010 pure-ftp 36 Feb 26 16:14 . drwxr-xr-x 2 1010 pure-ftp 36 Feb 26 16:14 .. -rw-r--r-- 1 1010 pure-ftp 0 Feb 26 16:07 123.txt -rw-r--r-- 1 0 0 0 Feb 26 16:14 456.txt lftp ftp_usera@127.0.0.1:/> quit [root@Dasoncheng ~]# chown pure-ftp:pure-ftp /data/ftp/456.txt [root@Dasoncheng ~]# lftp ftp_usera@127.0.0.1 Password: lftp ftp_usera@127.0.0.1:~> ls drwxr-xr-x 2 1010 pure-ftp 36 Feb 26 16:14 . drwxr-xr-x 2 1010 pure-ftp 36 Feb 26 16:14 .. -rw-r--r-- 1 1010 pure-ftp 0 Feb 26 16:07 123.txt -rw-r--r-- 1 1010 pure-ftp 0 Feb 26 16:14 456.txt ##文件属主为uid,属组为pure-ftp 这是pure-ftpd的一个特性!