ncftp schaut nicht in .netrc

8

Ich habe diese Art von Strophe in meinem .netrc:

machine ftp.mydomain.com
        login mylogin 
        password mypassword

und während ich mich erfolgreich verbinden kann mit ftp:

ftp ftp.mydomain.com

und Weitergabe von Anmeldeinformationen an ncftp:

ncftp -umylogin -pmypassword ftp.mydomain.com

Ich bekomme das nur mit ncftp ftp.mydomain.com

NcFTP 3.2.4 (May 16, 2010) by Mike Gleason (http://www.NcFTP.com/contact/).
Connecting to xxx.xxx.0.140...                                                    
ProFTPD 1.3.1 Server (Debian) [::ffff:xxx.xxx.0.140]
Login incorrect.                                                                
Sleeping 20 seconds... 
Neurino
quelle

Antworten:

4

man ncftpgibt an, dass ncftpkeine .netrcDatei zum Speichern von Einstellungen verwendet wird. Siehe FILESAbschnitt für Details. Stattdessen wird das $HOME/.ncftp/Verzeichnis verwendet. Stellen Sie einfach eine Verbindung zu Ihrem Server her und verwenden Sie den bookmarkBefehl zum Erstellen eines Datensatzes in einer $HOME/.ncftp/bookmarksDatei

dchirikov
quelle
Ich habe mich auf dieses Dokument verlassen, das ich online gefunden habe, aber es war falsch ... Allerdings zwingt die Lesezeichenfunktion die Verwendung mindestens einmal im interaktiven Modus, nicht immer das, was Sie wollen ... Danke
Neurino
Dieser Mann ist sehr alt, denke ich. Ich konnte keine Erwähnungen über netrc im Änderungsprotokoll finden
dchirikov
2

Dies ist eine Neufassung von Dchirikovs Antwort mit Links und einem Howto.

Obwohl alte Manpages darauf hinzudeuten scheinen, dass dies einmal der Fall war, scheint es, dass ncftp die .netrcDatei seit einiger Zeit nicht mehr unterstützt . Die neueste offizielle Manpage erwähnt dies nicht. Ich fand einen Debian-Fehlerbericht aus dem Jahr 2002 über den Mangel an Unterstützung. Der ncftp-Entwickler (Mike Gleason) antwortete mit:

Die .netrcDatei hat wenig mit der Konfigurationsdatei von ncftpput zu tun, die genau einen Satz von Anmeldeinformationen enthalten kann. Durch das ordnungsgemäße Parsen eines .netrcCodes wird der Code ohne greifbaren Vorteil aufgebläht, da Sie ihn nicht mit ncftpput verwenden können, ohne ihn zu bearbeiten.

Ich denke, man kann mit Sicherheit sagen, dass der .netrcSupport absichtlich entfernt wurde und nicht so bald zurückkehren wird.

Der ncftp-Weg, um eine kennwortlose Anmeldung / Übertragung zu erreichen, besteht darin, ein Lesezeichen zu erstellen. Es ist ziemlich einfach:

$ ncftp -u username ftp.example.com
[...]
Password requested by [host IP address] for user "username".

User username okay, need password.

Password: 

Dann geben Sie das Passwort ein und Sie sind dabei. Sie sollten den Begrüßungstext des Servers erhalten und:

Restricted user logged in.
Logged in to ftp.example.com.

ncftp / >Geben Sie an der Eingabeaufforderung ein bookmark. Sie werden aufgefordert, dem Lesezeichen einen Namen zu geben (der Vorschlag ist examplein unserem Beispiel eine nützliche Version des Hostnamens ) und zu bestätigen, dass Sie das Kennwort speichern möchten.

Wenn Sie ncftpdie Datei beenden und durchsuchen ~/.ncftp/bookmarks, wird eine Zeile für Ihren Host mit dem Lesezeichennamen, dem Hostnamen, dem Benutzernamen und dem Kennwort angezeigt. Das Passwort wird in einer verschlüsselten Form gespeichert, die wahrscheinlich nicht vollständig sicher ist, aber zumindest sicherer als Klartext, wie er in der .netrcDatei enthalten ist.

Mach jetzt:

$ ncftp example
[...]
Restricted user logged in.
Logged in to ftp.example.com.
ncftp / >

Und da bist du ja. Die Lesezeichen eignen sich auch für die Put / Get-Versionen von ncftp. Zum Beispiel,

$ ncftpput example destdir file

Wird fileauf den Server ftp.example.comim Verzeichnis setzen destdir.

Matthew Leingang
quelle
Ihre Antwort ist eine nützliche Erweiterung der akzeptierten. Ich habe die Schritte befolgt, aber ich finde, dass immer noch zur Eingabe des Kennworts aufgefordert wird, obwohl der Host aufgelöst wird und der Benutzername aus der Lesezeichendatei verwendet wird. Die Lesezeichendatei enthält das verschlüsselte Kennwort.
Scipilot
Hm. Ich musste mich dafür set save-passwords yeskomplett automatisch anmelden. (Ohne das Lesezeichen erneut zu speichern). Der Standardwert ist ask. Ich verwende es in einem Docker-Container, in dem der Ordner .ncftp bereitgestellt ist, also möglicherweise ein Problem. Ich habe festgestellt, dass die Eingabeaufforderungen nicht richtig angezeigt werden (sie kommen zu spät, nachdem Sie die Eingabetaste gedrückt haben). Vielleicht habe ich die Aufforderung zum Speichern verpasst ...
scipilot
@scipilot: Danke für die zusätzlichen Infos. Fühlen Sie sich frei, die Antwort zu bearbeiten und set save-passwords yesan der richtigen Stelle zu platzieren.
Matthew Leingang