SSH + proFTPd = SFTP szybki przepis

SSH + proFTPd = SFTP szybki przepis

Ot szybki przepis aby do sftp używać proftpd zamiast ssh :)

Na początek instalujemy proftpd:

apt-get install proftpd

Zmieniamy kilka wpisów w pliku konfiguracyjnym:

vim /etc/proftpd/proftpd.conf

Tutaj trzeba od komentować:

DefaultRoot     ~

Dzięki temu user nie wyjdzie poza swój katalog domowy
Konfigurujemy sftp:

vim /etc/proftpd/conf.d/sftp.conf

Coś jak poniżej:

<IfModule mod_sftp.c>

        SFTPEngine on
        Port 2290
        SFTPLog /var/log/proftpd/sftp.log

        # Configure both the RSA and DSA host keys, using the same host key
        # files that OpenSSH uses.
        SFTPHostKey /etc/ssh/ssh_host_rsa_key
        SFTPHostKey /etc/ssh/ssh_host_dsa_key

        SFTPAuthMethods publickey

        SFTPAuthorizedUserKeys file:/etc/proftpd/authorized_keys/%u

        # Enable compression
        SFTPCompression delayed

</IfModule>

Oczywiście port 2290 będzie potrzebny do łączenia się z serwerem.
Zakładamy katalog gdzie będą trzymane klucze:

mkdir /etc/proftpd/authorized_keys

Generujemy u klienta klucz, który będzie używał do połączenia. Klucz w formacje dla proftpd:

ssh-keygen -e -f .ssh/plik_klucza

Wynik zapisujemy i wrzucamy w plik o nazwie loginu usera do katalogu: /etc/proftpd/authorized_keys.
Restart proftpd :)

/etc/init.d/proftpd restart

Teraz pozostaje nam tylko zablokować sftp via ssh, wieć:

vim /etc/ssh/sshd_config

I tam musimy dać komentarz dla linii:

Subsystem sftp /usr/lib/openssh/sftp-server

I restart ssh

/etc/init.d/ssh restart

To wszystko :)