Sftp, ssh kullanarak dosya transferi yapan bir dosya aktarım
protokolüdür. Sftp ssh'ın sağladığı güvenlik özelliklerini kullanmış
olur. Nerdeyse tüm linux dağıtımlarda stfp istemcisi ön tanımlı olarak
gelir. Bunun için ayrıca sftp kurulumu yapmanıza gerek olmaz.
Şimdi aşağıdaki kod ile sistemimizde gerekli dosyaların olup olmadığını kontrol edelim.
$ rpm -qa|grep ssh
libssh2-1.4.3-10.el7_2.1.x86_64
openssh-7.4p1-13.el7_4.x86_64
openssh-server-7.4p1-13.el7_4.x86_64
openssh-clients-7.4p1-13.el7_4.x86_64
Daha sonra sftp dosyalarını yükleyip indirmek için kullanıcağımız dizini oluşturalım. Bu dizini istediğiniz dizin altına oluşturabilirsiniz. Ben home dizini altına oluşturmayı tercih ettim.
$ mkdir /home/sftp
$ cd /home
$ chmod 701 sftp
sftp dizininin iznini 701 yapıyoruz.
Bir sftp kullanıcıları için grup oluşturuyoruz.
$ groupadd sftpusers
Daha sonra kullanıcıyı oluşturuyoruz:
$ useradd -g sftpusers -d /upload -s /sbin/nologin mysftpuser
* -d komutu ile daha sonra /upload klasörünün /home/sftp/upload altında olacağı anlamına gelir.
$ passwd mysftpuser
Upload dizinini oluşturup sahiplik ayarlarını yapıyoruz:
$ mkdir -p /home/sftp/upload
$ chown -R root:sftpusers /home/sftp
$ chown -R mysftpuser:sftpusers /home/sftp/upload
Daha sonra /etc/ssh/sshd_config yapılandırma dosyasına aşağıdaki satırları ekliyoruz:
Match Group sftpusers
ChrootDirectory /home/sftp/%u
ForceCommand internal-sftp
*sftpusers grubundaki kullanıcıların sadece sftp bağlantısı sağlayabilmesini ve sadece home/sftp altına erişimi olmasına izin verdik.
Son olarakta sshd servisini yeniden başlatıyoruz.
$ service sshd restart