Daten auf virtuelle Maschinen und andere Systeme verschieben (Linux Mint 11)
In diesem Artikel geht es darum, wie man mit dem scp (secure copy) Befehl Daten zwischen Servern verschieben kann. Um den Prozess zu verdeutlichen werde ich eine mit VirtualBox erstellte virtuelle Maschine benutzen. Auf beiden Systemen ist Linux Mint installiert.
Für den Inhalt des Tutorials gebe ich keinerlei Garantie!
1 Vorbemerkung
Sie können mit dem scp-Befehl nicht nur Daten innerhalb des internen Netzwerks verschieben sondern auch auf jeden anderen Server, vorausgesetzt Ihnen sind die IP und die Zugangsdaten des Servers bekannt.
2 Konfiguration der virtuellen Maschine
Um Daten auf die virtuelle Maschine senden zu können, müssen wir erst sicherstellen, dass diese mit dem internen Netzwerk verbunden ist und ihre dortige IP in Erfahrung bringen. Öffnen Sie dazu VirtualBox und markieren Sie die Maschine auf der das System läuft, auf das Sie Daten verschieben wollen. Öffnen Sie dann Ändern > Netzwerk. Wählen Sie den richtigen Adapter aus (Adapter 1, wenn Sie noch keine anderen Einstellungen vorgenommen haben), klicken Sie auf das Angeschlossen an: Dropdownmenü und wählen dort Netzwerkbrücke aus, um die Maschine mit dem Lokalnetzwerk zu verbinden. Starten Sie dann die virtuelle Maschine. Benutzen Sie dann im Terminal der virtuellen Maschine den Befehl
sudo apt-get install openssh-server
und danach
ifconfig
Der ifconfig Befehl wird Ihnen einige Textblöcke zeigen, von denen einer mit eth0 betitelt ist.
ctest@ctest-System-Product-Name ~ $ ifconfig eth0 Link encap:Ethernet HWaddr f4:6d:04:94:8f:17 inet addr:192.168.0.11 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::f66d:4ff:fe94:8f17/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:234392 errors:0 dropped:0 overruns:0 frame:0 TX packets:128835 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:332109021 (332.1 MB) TX bytes:11758082 (11.7 MB) Interrupt:43 Base address:0x6000 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:39 errors:0 dropped:0 overruns:0 frame:0 TX packets:39 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2424 (2.4 KB) TX bytes:2424 (2.4 KB) ctest@ctest-System-Product-Name ~ $
Die IP-Adresse die in diesem Block nach inet addr: steht ist die jenige, die der Maschine im Lokalnetzwerk zugewiesen ist. Diese brauchen wir, um vom Hauptsystem aus auf die Maschine zugreifen zu können. Minimieren Sie nun die virtuelle Maschine und kehren Sie ins Hauptsystem zurück, Sie können nun mit dem Senden der Dateien fortfahren. Benutzen Sie dazu folgende Befehlsstruktur und ersetzen Sie die Begriffe in eckigen Klammern durch ihre richtigen Werte:
scp [path of file to send] root@[receiver’s
IP]:[target directory]
Es würde folgendermaßen aussehen, wenn Ich die Datei FunnyVideo.mp4 aus dem /home/ctest/Videos Verzeichnis in das /home/virtualguy/Videos Verzeichnis meiner virtuellen Maschine mit der IP 192.168.0.11 senden würde:
scp /home/ctest/Videos/FunnyVideo.mp4
root@192.168.0.11:/home/virtualguy/Videos
Es kann passieren, dass folgende Fehlermeldung auftaucht, sobald Sie den Befehl bestätigen:
ctest@ctest-System-Product-Name ~ $ scp /home/ctest/Videos/FunnyVideo.mp4 root@192.168.0.11:/home/virtualguy/Videos @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is 4e:c0:50:9a:cf:b6:bc:45:ed:9b:54:97:d8:11:21:a8. Please contact your system administrator. Add correct host key in /home/ctest/.ssh/known_hosts to get rid of this message. Offending ECDSA key in /home/ctest/.ssh/known_hosts:4 remove with: ssh-keygen -f "/home/ctest/.ssh/known_hosts" -R 192.168.0.11 ECDSA host key for 192.168.0.11 has changed and you have requested strict checking. Host key verification failed. lost connection ctest@ctest-System-Product-Name ~ $
Dies wird dadurch verursacht, dass das System mit der IP, auf dass Sie Dateien kopieren wollen, zwar noch die selbe IP besitzt, aber trotzdem ein anderes System ist. So etwas kann zum Beispiel passieren, wenn eine frühere virtuelle Maschine die selbe IP hatte, dann gelöscht und durch eine neue ersetzt wurde, welche daraufhin die IP der alten Maschine angenommen hat. Um das Problem zu lösen, folgen Sie den Anweisungen in der Meldungen. In meinem Fall muss ich den folgenden Befehl benutzen:
ssh-keygen -f „/home/ctest/.ssh/known_hosts“ -R
192.168.0.11
Achten Sie darauf, den Pfad und die IP durch die zu Ihrem System passenden Werte zu ersetzen. Sie können das Problem auch manuell lösen, indem Sie die known_hosts Datei als root mit einem Texteditor öffnen und den alten Schlüssel entfernen (siehe Fehlermeldung).
Sollte dieser Fehler bei Ihnen nicht auftauchen, werden Sie gefragt ob Sie wirklich fortfahren möchten. Geben Sie yes ein und bestätigen Sie mit Enter. Danach werden Sie nach dem Rootpasswort des Empfängersystems gefragt. Geben Sie dieses ein und bestätigen erneut mit Enter. Die kopierte Datei sollte dann im angegebenen Ordner zu finden sein, Sie haben bisher jedoch nur Leserechte daran. Um die vollen Rechte zu erhalten, benutzen Sie folgenden Befehl und ersetzen Sie den Pfad mit dem Ihrer Datei:
sudo chmod 777 /home/virtualguy/Videos/FunnyVideo.mp4
Author: Christian Schmalfeld <c [dot] schmalfeld [at] projektfarm [dot] de>