Möchte man unter Windows mit restic auf einen SFTP-Server sichern bzw. auf diesen Zugreifen stößt man ggf. auf die eine oder andere Gegebenheit.

Wie man bereits in der Dokumentation nachlesen kann, greift restic auf die Bordmittel des Betriebssystems zurück wenn es um ssh geht. Ferner wird nur die Anmeldung mittels Schlüssel unterstützt. Arbeitet man nun unter Windows und kann zudem auf den SFTP-Server nur mit einer Benutzernamen/Kennwort-Kombination zugreifen, muss man einen kleinen Umweg nehmen.

Neben restic benötigt man vom PuTTY-Macher das Tool plink.exe, die man hier herunterladen kann.

Im ersten Schritt muss man dem System den öffentlichen Schlüssel bekannt machen bzw. zustimmen das diesem bei weiteren Ausführung vertraut werden darf. Es gibt zwei Möglichkeiten dies zu tun:

Entweder PuTTY herunterladen, ausführen und einmal die Verbindung zum SFTP-Server aufbauen und dabei dem Schlüssel zustimmen oder einmal die plink.exe mit den notwendigen Parametern starten und dort dem Schlüssel vertrauen:

plink.exe -s -l %SFTP_USER% -P 22 -pw %SFTP_PASS% %SFTP_SERVER%

Es erscheint eine Abfrage ob man dem Schlüssel vertrauen möchte, die man mit “y” bestätigen kann. Ist dieser Schritt abgeschlossen kann jeder weitere restic-Befehl zusammen mit der plink.exe ausgeführt werden. Ein Beispiel:

restic.exe -o sftp.command="'C:\Tools\plink.exe' -s -l %SFTP_USER% -P 22 -pw %SFTP_PASS% %SFTP_SERVER% sftp" init

Dieser Befehl sendet letztlich “restic init” über ssh an den Server unter Verwendung von sftp. Der besseren Übersicht halber sollte man die Umgebungsvariablen von restic nutzen um beispielsweise das Repository, dessen Kennwort und mehr anzugeben:

Die hier gezeigte Möglichkeit funktioniert auch auf älteren Windows-Version wie z.B. Server 2012. Wer zudem nicht die ssh-Möglichkeiten in neueren Windows-Ausgaben nutzen kann oder möchte, kann nach wie vor auf plink.exe zurückgreifen.

Quelle

restic forum – Tutorial: Backup from Windows with putty / plink to a sftp server