1. 程式人生 > >openssh中sftp功能搭建sftp伺服器

openssh中sftp功能搭建sftp伺服器

1、安裝opensslOpenSSL安裝,版本要高於0.9.6[[email protected] ~]$ rpm -qf `which openssl`openssl-1.0.1e-42.el6_7.1.x86_64如果沒有安裝openssl,請安裝openssl,注意選擇安裝openssl版本,避免選項有心臟出血漏洞的版本。檢查openssl當前版本是否修復心臟出血漏洞:[[email protected] ~]$ rpm -q openssl-1.0.1e-42.el6_7.1.x86_64 --changelog |grep 'CVE-2014-0160'- fix CVE-2014-0160 - information disclosure in TLS heartbeat extension2、安裝openssh伺服器版本要高於4.8sp1[
[email protected]
 ~]$ rpm -qf `which sshd`openssh-server-5.3p1-84.1.el6.x86_64[[email protected] ~]# which sshd/usr/sbin/sshd注意,上面是檢查安裝openssh的伺服器版本,檢查openssh客戶端版本資訊如下:[[email protected] ~]$ rpm -qf `which ssh`openssh-clients-5.3p1-84.1.el6.x86_643、配置確認sshd啟動指令碼SSHD的值指向正確的sshd版本的執行檔案[[email protected]
 ~]# cat /etc/init.d/sshd|grep SSHD=SSHD=/usr/sbin/sshd4、帳號設定SFTP的賬戶直接使用Linux作業系統賬戶,我們可以用useradd命令來建立賬戶#建立sftponly組:[[email protected] ~]# groupadd sftponly開設SFTP賬號:#建立賬號根目錄[[email protected] ~]# mkdir -p /data/dir1/sftp/sftp-jxwxcs/#新建SFTP帳號[[email protected] ~]# useradd -g sftponly -s /sbin/nologin -d /data/dir1/sftp/sftp-jxwxcs/ sftp-jxwxcsuseradd:警告:此主目錄已經存在。
不從 skel 目錄裡向其中複製任何檔案。#修改帳號密碼[[email protected] ~]# passwd sftp-jxwxcs#修改帳號主目錄所有者和屬性[[email protected] ~]# chown root.root /data/dir1/sftp/sftp-jxwxcs/[[email protected] ~]# chmod 755 /data/dir1/sftp/sftp-jxwxcs/#建立上傳目錄[[email protected] ~]# mkdir /data/dir1/sftp/sftp-jxwxcs/upload/#修改上傳資料夾的所屬使用者和組:[[email protected] ~]# chown sftp-jxwxcs.sftponly /data/dir1/sftp/sftp-jxwxcs/upload/#修改賬號最大天數chage -M 99999 sftp-jxwxcs[[email protected] upload]# chage -l用法:chage [選項] 使用者名稱選項:  -d, --lastday 最近日期        將最近一次密碼設定時間設為“最近日期”  -E, --expiredate 過期日期     將帳戶過期時間設為“過期日期”  -h, --help                    顯示此幫助資訊並退出  -I, --inactive 失效密碼       將因過期而失效的密碼設為“失效密碼”  -l, --list                    顯示帳戶年齡資訊  -m, --mindays 最小天數        將兩次改變密碼之間相距的最小天數設為“最小天數”  -M, --maxdays 最大天數        將兩次改變密碼之間相距的最大天數設為“最大天數”  -W, --warndays 警告天數       將過期警告天數設為“警告天數”5、設定sshd_config。通過Chroot限制使用者的根目錄編輯/etc/ssh/sshd_config,登出掉Subsystem       sftp    /usr/libexec/openssh/sftp-server 這行,增加如下內容:Subsystem      sftp    internal-sftp -l INFO -f AUTHMatch group sftponly        ChrootDirectory     %h        X11Forwarding       no        AllowTcpForwarding  no        ForceCommand        internal-sftpMaxAuthTries 3MaxSessions 30【備註】以上配置後的sftp使用者登入日誌記錄在/var/log/secure 6、重啟sshd服務[root[email protected] ~]# service sshd reload重新載入 sshd:[確定]7、測試登入Connecting to 192.168.19.240...[email protected]'s password: sftp> lsCouldn't get handle: Permission denied出現上面的錯誤提示是因為系統啟動了SELINUX,關掉這個功能即可:[[email protected] sftp]# cat /etc/selinux/config|grep SELINUX=# SELINUX= can take one of these three values:SELINUX=enforcing修改為:[[email protected] sftp]# cat /etc/selinux/config|grep SELINUX=# SELINUX= can take one of these three values:SELINUX=disabled然後重啟。或者setenforce 0[[email protected] sftp]# setenforce 0sftp> put install.logUploading install.log to /upload/install.loginstall.log                                                                                                                           100%   36KB  35.5KB/s   00:00    sftp> LSinstall.log   sftp> lsinstall.log   sftp> cd ..sftp> lsupload  從上面可以看出,可以正常使用了。參考: