
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.
- Wo mache ich einen Fehler?
- 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.
Ich möchte eine Datei mit einem beliebigen Protokoll von der Quelle zum Ziel kopieren. Ändern Sie die Berechtigung
[Remote-Host]$ chmod 700 ~/.ssh [Remote-Host]$ chmod 600 ~/.ssh/autorisierter_Schlüssel
Antwort1
- 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.
- 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 ( -l
gibt den Benutzernamen für die Verbindung an). Außerdem sind die Berechtigungen für die authorized_keys
Datei falsch, Sie benötigen 600
und 700
, nicht 644
und 755
. Schließlich ist das sowieso keine gute Möglichkeit, Schlüssel zu kopieren, dafür ist es ssh-copy-id
da.
Versuchen wir es also von vorne. Die Schritte 1 und 2 sind in Ordnung, jetzt machen Sie Folgendes:
Entfernen Sie den Eintrag, den Sie zur Remote
authorized_keys
-Datei hinzugefügt haben.Korrigieren Sie die Berechtigungen auf dem Remote-Host:
[remote-host]$ chmod 700 ~/.ssh/ [remote-host]$ chmod 600 ~/.ssh/authorised_keys
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
Versuchen Sie erneut, sich anzumelden
[local-host]$ ssh jsmith@ipaddress_of_remote-host
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:
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.