那既然不安全,爲何要用到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的一個特性!