Ich schreibe ein Skript für sftp
Windows (Server) von einem Linux-Computer. Ich wollte, dass das Skript ohne manuelle Eingaben wie Passworteingabe usw. ausgeführt wird.
#!/bin/sh
HOST='10.x.x.x'
USER='user'
PASSWD='passwd'
sftp $USER@$HOST
Ich verwende freeftpd als SFTP-Server auf dem Windows-Computer. Ab sofort verwende ich Ubuntu, aber meine eigentliche Anforderung ist eine abgespeckte Linux-Version für einen ARM-basierten Rechner.
Auf dem Linux-Rechner generiere ich öffentliche und private Schlüssel mit ssh-keygen -t rsa
. Zwei Dateien (öffentlich und privat) werden unter dem /home/user/.ssh
Verzeichnis erzeugt, dh id_rsa
und id_rsa.pub
.
Wenn es sich um einen anderen Linux-Computer handelt, muss ich den öffentlichen Schlüssel ( id_rsa.pub
) an die authorized_keys
Datei anhängen .
Ich bin mir jetzt nicht sicher, da mein SFTP-Server unter Windows läuft. Nach der Installation von freeFTPd habe ich eingecheckt C:\Program Files\freeFTPd\
, sehe aber keine Dateien, die denen .ssh/authorized_keys
von Linux ähneln .
FreeFTPd bietet die Möglichkeit, einen privaten Schlüssel zu generieren. Also habe ich eins generiert und gleich in die Linux machine ( .ssh/id_rsa
) Datei kopiert und ausprobiert. Es wird jedoch weiterhin zur Eingabe eines Kennworts aufgefordert.
Wie kann ich das lösen?
Antworten:
Ich kenne Windows nicht, aber Sie scheinen sich darin zu irren:
Sie müssen also einen SSH-Server auf Ihren Fenstern installieren .
Schauen Sie sich an:
quelle
.ssh/
undid_rsa.pub
. Dies betrifft SSH FTP .