Linux下sftp配置之密鑰方式登錄
由于vsftp采用明文傳輸,用戶(hù)名密碼可通過(guò)抓包得到,為了安全性,需使用sftp,鎖定目錄且不允許sftp用戶(hù)登到服務(wù)器。由于sftp使用的是ssh協(xié)議,需保證用戶(hù)只能使用sftp,不能ssh到機(jī)器進(jìn)行操作,且使用密鑰登陸、不是22端口。
1. 創(chuàng)建sftp服務(wù)用戶(hù)組,創(chuàng)建sftp服務(wù)根目錄
groupadd sftp
#此目錄及上級(jí)目錄的所有者必須為root,權(quán)限不高于755,此目錄的組最好設(shè)定為sftp
mkdir /data/sftpchown -R root:sftp /data/sftpchmod -R 0755 /data/sftp
2. 修改sshd配置文件
cp /etc/ssh/sshd_config,_bk} #備份配置文件sed -i 's@#Port 22@Port 22@' /etc/ssh/sshd_config #保證原來(lái)22端口可以
vi /etc/ssh/sshd_config
注釋掉/etc/ssh/sshd_config文件中的此行代碼:
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下代碼:
Port 2222Subsystem sftp internal-sftp -l INFO -f AUTHMatch Group sftpChrootDirectory /data/sftp/%uX11Forwarding noAllowTcpForwarding noForceCommand internal-sftp -l INFO -f AUTH
凡是在用戶(hù)組sftp里的用戶(hù),都可以使用sftp服務(wù);使用sftp服務(wù)連接上之后,可訪(fǎng)問(wèn)目錄為/data/sftp/username
舉個(gè)例子:
test是一個(gè)sftp組的用戶(hù),它通過(guò)sftp連接服務(wù)器上之后,只能看到/data/sftp/test目錄下的內(nèi)容
test2也是一個(gè)sftp組的用戶(hù),它通過(guò)sftp連接服務(wù)器之后,只能看到/data/sftp/test2目錄下的內(nèi)容
3. 創(chuàng)建sftp用戶(hù)
#此例將創(chuàng)建一個(gè)名稱(chēng)為test的sftp帳號(hào)
#創(chuàng)建test sftp家目錄:test目錄的所有者必須是root,組最好設(shè)定為sftp,權(quán)限不高于755
mkdir /data/sftp/testchmod 0755 /data/sftp/testchown root:sftp /data/sftp/testuseradd -g sftp -s /sbin/nologin test #添加用戶(hù),參數(shù)-s /sbin/nologin禁止用戶(hù)通過(guò)命令行登錄
創(chuàng)建test用戶(hù)密鑰對(duì):
# mkdir /home/test/.ssh# ssh-keygen -t rsa# cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys# chown -R test.sftp /home/test
在test目錄下創(chuàng)建一個(gè)可以寫(xiě)的upload目錄
mkdir /data/sftp/test/uploadchown -R test:sftp /data/sftp/test/upload
注:sftp服務(wù)的根目錄的所有者必須是root,權(quán)限不能超過(guò)755(上級(jí)目錄也必須遵循此規(guī)則),sftp的用戶(hù)目錄所有者也必須是root,且最高權(quán)限不能超過(guò)755。
4. 測(cè)試sftp
service sshd restart
test用戶(hù)密鑰登陸如下圖:
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
新聞熱點(diǎn)
疑難解答
圖片精選