⑴ 怎麼開啟linux伺服器的sftp服務
可以按照如下方式進行設置:
1、創建sftp組,groupaddsftp,創建完成之後使用cat /etc/group命令組的信息。
1、sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協議。可以為傳輸文件提供一種安全的網路的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。SFTP 為 SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。
2、其實在SSH軟體包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全文件信息傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(埠號默認是22)來完成相應的連接和答復操作,所以從某種意義上來說,SFTP並不像一個伺服器程序,而更像是一個客戶端程序。
⑵ 用sftp怎麼查看linux遠程伺服器目錄下有什麼文件
sftp登錄後用ls命令看
⑶ 使用Apache mina sshd構建sftp server如何託管配置文件
1. 介紹
sftp是Secure File Transfer Protocol的縮寫,安全文件傳送協議。可以為傳輸文件提供一種安全的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。SFTP 為 SSH的一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在SSH軟體包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全文件傳輸子系統,SFTP本身沒有單獨的守護進程,它必須使用sshd守護進程(埠號默認是22)來完成相應的連接操作,所以從某種意義上來說,SFTP並不像一個伺服器程序,而更像是一個客戶端程序。SFTP同樣是使用加密傳輸認證信息和傳輸的數據,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP。
2. sftp搭建
2.1查看openssl的版本
ssh -V
###使用ssh –V命令來查看openssh的版本,版本必須大於4.8p1,低於這個版本需要升級。
2.2創建sftp組
groupadd sftp
2.3創建一個sftp用戶,用戶名為mysftp,密碼為mysftp
useradd –g sftp –s /bin/false mysftp //該用戶不能通過sshd登陸到系統
passwd mysftp
2.3sftp組的用戶的home目錄統一指定到 chaodiquan.com /data/sftp下,按用戶名區分,這里先新建一個mysftp目錄,然後指定mysftp的home為/data/sftp/mysftp
mkdir -p /data/sftp/mysftp
usermod –d /data/sftp/mysftp mysftp
2.4配置sshd_config
文本編輯器打開 /etc/ssh/sshd_config
vi /etc/ssh/sshd_config
找到如下這行,用#符號注釋掉。
# Subsystem sftp /usr/libexec/openssh/sftp-server
在文件最後面添加如下幾行內容,然後保存。
Subsystem sftp internal-sftp
###配置一個外部子系統(例如,一個文件傳輸守護進程)。僅用於SSH-2協議。值是一個子系###統的名字和對應的命令行(含選項和參數)。比如"sftp /usr/libexec/openssh/sftp-server"。,###這里配置為內部的
Match Group sftp
#限定只有sftp組的才能訪問
ChrootDirectory /data/sftp/%u
###設定屬於用戶組sftp的用戶訪問的根文件夾
ForceCommand internal-sftp
###強制執行這里指定的命令而忽略客戶端提供的任何命令。這個命令將使用用戶的登錄###shell執行(shell -c)。這可以應用於 shell 、命令、子系統的完成,通常用於 Match 塊中。###這個命令最初是在客戶端通過 SSH_ORIGINAL_COMMAND 環境變數來支持的。
AllowTcpForwarding no
###是否允許TCP轉發,默認值為"yes", 禁止TCP轉發並不能增強安全性,除非禁止了用戶###對shell的訪問,因為用戶可以安裝他們自己的轉發器。
X11Forwarding no
###是否允許進行 X11
轉發。默認值是"no",設為"yes"表示允許。如果允許X11轉發並且sshd(8)代理的顯示區被配置為在含有通配符的地址(X11UseLocalhost)上監聽。那麼將可能有額外的信息被泄漏。由於使用X11轉發的可能帶來的風險,此指令默認值為"no"。需要注意的是,禁止X11轉發並不能禁止用戶轉發X11通信,因為用戶可以安裝他們自己的轉發器。
如果啟用了 UseLogin ,那麼X11轉發將被自動禁止。
2.5設定Chroot目錄許可權
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
2.6建立SFTP用戶登入後可寫入的目錄
照上面設置後,在重啟sshd服務後,用戶mysftp已經可以登錄。但使用chroot指定根目錄後,根應該是無法寫入的,所以要新建一個目錄供mysftp上傳文件。這個目錄所有者為mysftp,所有組為sftp,所有者有寫入許可權,而所有組無寫入許可權。命令如下:
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
2.7重啟sshd服務
service sshd restart
⑷ 如何配置 ftp/sftp 訪問遠程文件
眾所周知SFTP賬號是基於SSH賬號的,所以在默認情況下訪問伺服器的許可權是非常大的。下面為SFTP用戶許可權設置方法。
必要條件:
你的openssh-server版本至少得失4.8p1, 因為配置許可權需要版本添加的新配置項ChrootDirectory來完成。
如何查看自己伺服器上的ssh版本?大家可以嘗試以下命令:
$ ssh -V
具體實施步驟:
1. 我們需要創建一個用戶組,專門用於sftp用戶
$ groupadd sftpusers
2. 我們創建一個用戶test
$ useradd -s /bin/false -G sftpuser test
注意這里我們將test用戶的shell設置為/bin/false使他沒有登陸shell的許可權
3. 編輯 /etc/ssh/sshd_config
找到Subsystem這個配置項,將其修改為
Subsystem sftp internal-sftp
然後再到文件最尾處增加配置設定屬於用戶組sftpusers的用戶都只能訪問他們自己的home文件夾
Match Group sftpusers
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
保存並關閉文件
4. 修改test用戶home文件夾的許可權,讓其屬於root用戶
chown root ~test
5. 重啟sshd服務
$ service sshd restart
6. 測試用戶賬號
$ ssh test@localhost
連接會被拒絕或者無法登陸
$ sftp tesst@localhost
登陸後你會發現你的賬號無法切換到除自己home目錄之外的地方的
常見問題:
如果你鏈接伺服器的時候出現下面的提示:
Write failed: Broken pipe
Couldn't read packet: Connection reset by peer
這個問題的原因是ChrootDirectory的許可權問題,你設定的目錄必須是root用戶所有,否則就會出現問題。所以請確保sftp用戶根目錄的所有人是root, 許可權是 750 或者 755。