RHEL中建議用SSH遠端存取,但是有時我們只希望使用者可以訪問伺服器上的檔案,但不能登陸伺服器進行操作,也就是不能SSH登陸,但是可以通過SFTP進行檔案傳輸。通過以下配置可以進行控制。
如果控制sftp目錄,需要openssh 4.8p1以上,以下就別折騰了。如果版本低,重裝一下,如下:
http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/
查看ssh版本
1、 配置telnet串連,因為重裝ssh的話需要通過telnet來遠程(vnc也行)
查看安裝的telnet
配置telnet的disable為no
配置telnet允許root登陸,注釋pam_securetty.so這行
重啟telnet服務
2、 telnet登陸伺服器,停止ssh
查看原openssh的安裝情況
全部卸載
3、 安裝最新版openssh,此文使用的是openssh-6.0p1
#cdopenssh-6.0p1
#./configure--prefix=/usr/local/ssh --sysconfdir=/etc/ssh --with-pam --with-zlib --with-ssl-dir=/usr/local/ssl--with-md5-passwords --mandir=/usr/share/man
#make
#makeinstall
# cp /usr/local/ssh/bin/* /usr/bin/
# cp /usr/local/ssh/sbin/* /usr/sbin/
驗證安裝結果
將ssh加入啟動服務,配置開機啟動
ssh安裝完成,停止telnet後,可以回到ssh遠程了。
4、 例如:想把目錄/work/git/gitspace作為sftp的訪問根目錄,並控制使用者只能通過sftp進行檔案訪問,而不能通過ssh登陸,則配置如下。
建立使用者組sftp-only
建立使用者sftpadmin指定為sftp-only組,並shell為/sbin/nologin
配置ssh,使使用者組sftp-only下的使用者僅允許sftp且根目錄為/work/git/gitspace
#vi/etc/ssh/sshd_config
將Subsystem部分修改如下
重啟ssh服務,用sftpadmin使用者登陸嘗試。