SCP (Secure Copy) und SFTP (SSH File Transfer Protocol) ermöglichen verschlüsselte Dateiübertragung über SSH. Sie sind die sichere Alternative zu FTP.
SCP
Grundlagen
# Lokale Datei auf Server kopieren
scp datei.txt user@server:/pfad/
# Datei vom Server holen
scp user@server:/pfad/datei.txt ./
# Mit anderem Port
scp -P 2222 datei.txt user@server:/pfad/
Verzeichnisse
# Verzeichnis rekursiv kopieren
scp -r /lokales/verzeichnis user@server:/pfad/
# Vom Server
scp -r user@server:/pfad/verzeichnis ./
# Direkt zwischen zwei Servern
scp user1@server1:/pfad/datei.txt user2@server2:/pfad/
# Über lokalen Rechner (bei Firewall)
scp -3 user1@server1:/pfad/datei.txt user2@server2:/pfad/
SFTP
Interaktiv
# Verbinden
sftp user@server
# Mit Port
sftp -P 2222 user@server
# Mit SSH-Key
sftp -i ~/.ssh/mykey user@server
SFTP-Befehle
# Nach Verbindung:
# Verzeichnis-Navigation
pwd # Remote-Verzeichnis
lpwd # Lokales Verzeichnis
cd /pfad # Remote wechseln
lcd /pfad # Lokal wechseln
ls # Remote auflisten
lls # Lokal auflisten
# Upload
put datei.txt
put -r verzeichnis/
mput *.txt # Mehrere Dateien
# Download
get datei.txt
get -r verzeichnis/
mget *.txt # Mehrere Dateien
# Dateiverwaltung
mkdir verzeichnis
rmdir verzeichnis
rm datei.txt
rename alt neu
chmod 644 datei.txt
chown user datei.txt
# Beenden
exit
bye
quit
Batch-Modus
# Befehle aus Datei
sftp -b commands.txt user@server
# commands.txt:
# cd /var/www
# put index.html
# chmod 644 index.html
# exit
Einzeiler
# Einzelne Datei
echo "get /pfad/datei.txt" | sftp user@server
# Mit Kommando
sftp user@server:/pfad/datei.txt ./
# Mehrere Befehle
sftp user@server << EOF
cd /var/www
put index.html
chmod 644 index.html
EOF
SSH-Konfiguration
~/.ssh/config
# Häufig genutzte Server
Host webserver
HostName 192.168.1.10
User deploy
Port 22
IdentityFile ~/.ssh/deploy_key
Host backup
HostName backup.example.de
User backupuser
Port 2222
IdentityFile ~/.ssh/backup_key
# Dann einfach:
scp datei.txt webserver:/var/www/
sftp backup
SCP ist ideal für schnelle, einfache Dateiübertragungen. SFTP bietet mehr Funktionen für interaktive Arbeit. Beide nutzen SSH-Verschlüsselung. Für regelmäßige Synchronisation ist rsync besser geeignet. SSH-Config vereinfacht die Arbeit mit mehreren Servern.