Wie kopiere ich eine Datei per FTP von Maschine A auf Maschine B mit dem Befehl

Wie kopiere ich eine Datei per FTP von Maschine A auf Maschine B mit dem Befehl

Ich möchte mithilfe eines Befehls eine Datei von der Quellmaschine A auf die Zielmaschine B kopieren und FTP verwenden.

Ich habe dies versucht

scp /home/varun/Desktop/Test.java username_for_target_machine@ip_address_of_target_machine:/home/Desktop/

The authenticity of host 'ip_address_of_target_machine (ip_address_of_target_machine)' can't be established.
RSA key fingerprint is 4a:49:cc:9d:ab:f6:ec:4f:b2:0b:63:ef:8f:b8:76:76.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ip_address_of_target_machine' (RSA) to the list of known hosts.
qaserve@ip_address_of_target_machine's password: 

Wenn ich das Passwort für die Zielmaschine eingebe

Permission denied, please try again.

Ich habe es mehrmals versucht, aber ich erhalte immer die gleiche Ausgabe.

  1. Wo mache ich einen Fehler?
  2. Wie kann ich im Befehl einen Benutzernamen und ein Passwort eingeben, ohne nach dem Passwort gefragt zu werden?

Aktualisierung:1

Ich habe versucht, SSH zu verwenden. Unten sind die Schritte, die ich befolgt habe.

1. Überprüfen Sie, ob auf dem lokalen Host und dem Remote-Host openSSH ausgeführt wird

OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013

2. Generieren Sie ein Schlüsselpaar auf dem lokalen Host mit ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): 
Enter same passphrase again:
Your identification has been saved in /home/jsmith/.ssh/id_rsa.
Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub.
The key fingerprint is:
31:3a:5d:dc:bc:81:81:71:be:31:2b:11:b8:e8:39:a0 jsmith@local-host

3. Installieren Sie den öffentlichen Schlüssel auf dem Remote-Host.

[remote-host]$ vi ~/.ssh/authorized_keys 
ssh-rsa ABIwAAAQEAzRPh9rWfjZ1+7Q369zsBEa7wS1RxzWR jsmith@local-host

4. Erteilen Sie dem .ssh-Verzeichnis auf dem Remote-Host die entsprechende Berechtigung.

[remote-host]$ chmod 755 ~/.ssh
[remote-host]$ chmod 644 ~/.ssh/authorized_keys

5. Melden Sie sich vom lokalen Host beim Remote-Host an und verwenden Sie dabei die SSH-Schlüsselauthentifizierung, um zu überprüfen, ob sie ordnungsgemäß funktioniert.

[local-host]$ ssh -l jsmith remote-host

Wenn ich den obigen Befehl ausführe, erhalte ich:

ssh: connect to host remote-host port 22: Connection timed out

Wenn ich tippe

ssh -l ipaddress_of_remote-host remote-host

Es wird nach einem Kennwort gefragt: Wenn ich das Kennwort eingebe, wird eine Verbindung zum Remote-Host hergestellt.

Warum werde ich erneut nach einem Kennwort gefragt, nachdem ich den öffentlichen Schlüssel im Remote-Host registriert habe?

Aktualisierung 2: Entschuldigen Sie die Unordnung.

  1. Ich möchte eine Datei mit einem beliebigen Protokoll von der Quelle zum Ziel kopieren. Ändern Sie die Berechtigung

  2. [Remote-Host]$ chmod 700 ~/.ssh [Remote-Host]$ chmod 600 ~/.ssh/autorisierter_Schlüssel

Antwort1

  1. Sie haben wahrscheinlich keine Berechtigung für /home/Desktop auf dem Remote-Server. Sie können es mit /home/Benutzername_für_Zielcomputer/Desktop versuchen.
  2. Nein, das glaube ich nicht. Aber du kannst bei Google nach „ssh Public Key Authentication“ suchen.

Antwort2

Sie verwechseln hier verschiedene Dinge. Erstens hat das alles nichts mit FTP zu tun. Sie verwenden scp, nicht ftp. Warum erwähnen Sie FTP? Dann scheinen Sie zu versuchen, eine Verbindung zum Host herzustellen, indem Sie die IP als Benutzernamen verwenden ( -lgibt den Benutzernamen für die Verbindung an). Außerdem sind die Berechtigungen für die authorized_keysDatei falsch, Sie benötigen 600und 700, nicht 644und 755. Schließlich ist das sowieso keine gute Möglichkeit, Schlüssel zu kopieren, dafür ist es ssh-copy-idda.

Versuchen wir es also von vorne. Die Schritte 1 und 2 sind in Ordnung, jetzt machen Sie Folgendes:

  1. Entfernen Sie den Eintrag, den Sie zur Remote authorized_keys-Datei hinzugefügt haben.

  2. Korrigieren Sie die Berechtigungen auf dem Remote-Host:

    [remote-host]$ chmod 700 ~/.ssh/
    [remote-host]$ chmod 600 ~/.ssh/authorised_keys
    
  3. Kopieren Sie Ihren Schlüssel vom lokalen Host auf die Remote-Basisstation:

    [local-host]$ ssh-copy-id -i ~/.ssh/id_rsa.pub user@ipaddress_of_remote-host
    
  4. Versuchen Sie erneut, sich anzumelden

    [local-host]$ ssh jsmith@ipaddress_of_remote-host
    
  5. Es sieht so aus, als würde der Host seinen Namen nicht richtig ins Netzwerk exportieren. Um das Problem schnell zu beheben, führen Sie Folgendes aus:

    [lokaler Host]$ echo "IP-Adresse_des_Remote-Hosts Hostname" | sudo tee -a /etc/hosts

    Dadurch wird der Name des Hosts als Alias ​​für seine IP gespeichert. Jetzt sollten Sie in der Lage sein, eine Verbindung herzustellen ssh user@hostname.

Antwort3

Ich denke, Sie haben Ihren FTP nicht konfiguriert, da er nach einem Passwort fragt. Überprüfen Sie daher einfach diesen Link:

1)http://www.mpipks-dresden.mpg.de/~mueller/docs/suse10.2/html/opensuse-manual_en/manual/sec.filetrans.copy.html

Um einen FTP-Server zu konfigurieren, gehen Sie wie folgt vor:

**Prepare the FTP server:**

    Install the vsftp package.

    Open a shell, login as root and save a backup copy of /etc/vsftpd.conf:

    cp /etc/vsftpd.conf /etc/vsftpd.conf.bak

    Create an access point for anonymous FTP

    mkdir ~ftp/incoming
    chown -R ftp:ftp ~ftp/incoming

Replace the configuration files depending on the scenario you prefer (refer to the manual page of vsftpd.conf for advanced configuration options):

Allowing Anonymous Read and Write Access

    #
    listen=YES

    # Enable anonymous access to FTP server
    anonymous_enable=YES

    #
    local_enable=YES
    # Enable write access
    write_enable=YES
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    dirmessage_enable=YES
    # Write log file 
    xferlog_enable=YES
    connect_from_port_20=YES
    chown_uploads=YES
    chown_username=ftp
    ftpd_banner=Welcome to FTP service.
    anon_root=/srv/ftp

Grant Restricted Permissions to FTP Users (Home Only)

    chroot_local_users=YES

Restart the FTP server:

rcvsftp start

Geben Sie auf dem Client einfach die URL einftp://HOSTin Ihrem Browser oder FTP-Client. Ersetzen Sie HOST durch den Hostnamen oder die IP-Adresse Ihres Servers. Es stehen viele grafische Benutzeroberflächen zur Verfügung, mit denen Sie den Inhalt Ihres FTP-Servers durchsuchen können. Um eine Liste dieser Benutzeroberflächen anzuzeigen, geben Sie einfach FTP in die Suchaufforderung des YaST-Paketmanagers ein.

verwandte Informationen