Verwenden von SCP zum Verschieben von Dateien auf einen und von einem virtuellen Computer
Gilt für: ✔️ Linux-VMs ✔️ Windows-VMs ✔️ Flexible Skalierungsgruppen
In diesem Artikel wird gezeigt, wie Sie Dateien per Secure Copy (SCP) von Ihrer Arbeitsstation auf eine Azure VM oder von einer Azure VM auf die Arbeitsstation verschieben. Das schnelle und sichere Verschieben von Dateien zwischen Ihrer Arbeitsstation und einer VM ist für die Verwaltung Ihrer Azure-Infrastruktur wichtig.
Für diesen Artikel benötigen Sie eine VM, die in Azure mit aktiviertem SSH bereitgestellt ist. Sie benötigen auch einen SCP-Client für Ihren lokalen Computer. Er basiert auf SSH und ist in der Standardshell der meisten Linux- und Windows-Installationen (10 und höher) enthalten.
Schnellbefehle
Hochladen einer Datei auf den virtuellen Computer
scp file azureuser@azurehost:directory/targetfile
Herunterladen einer Datei vom virtuellen Computer
scp azureuser@azurehost:directory/file targetfile
Ausführliche exemplarische Vorgehensweise
Als Beispiel verschieben wir eine Azure-Konfigurationsdatei auf eine VM und ziehen ein Protokolldateiverzeichnis von der VM – jeweils mithilfe von SCP.
Authentifizierung per SSH-Schlüsselpaar
SCP nutzt SSH für die Transportschicht. SSH übernimmt die Authentifizierung auf dem Zielhost, und verschiebt die Datei über einen verschlüsselten Tunnel, der für SSH standardmäßig bereitgestellt wird. Für die SSH-Authentifizierung können Benutzernamen und Kennwörter verwendet werden. Allerdings wird als bewährte Sicherheitsmethode die Authentifizierung mit einem öffentlichen und einem privaten SSH-Schlüssel empfohlen. Nachdem die Verbindung von SSH authentifiziert wurde, beginnt SCP mit dem Kopieren der Datei. Wenn Sie eine richtig konfigurierte Datei vom Typ ~/.ssh/config
und öffentliche und private SSH-Schlüssel verwenden, kann die SCP-Verbindung nur mit einem Servernamen (oder einer IP-Adresse) hergestellt werden. Falls Sie nur über einen SSH-Schlüssel verfügen, sucht SCP im Verzeichnis ~/.ssh/
danach und verwendet ihn standardmäßig zum Anmelden bei der VM.
Weitere Informationen zum Konfigurieren der Datei ~/.ssh/config
und zu öffentlichen und privaten SSH-Schlüsseln finden Sie unter Erstellen von SSH-Schlüsseln.
Hochladen einer Datei auf einen virtuellen Computer
Für das erste Beispiel kopieren wir eine Azure-Konfigurationsdatei auf eine VM, die zum Bereitstellen von Automation verwendet wird. Da diese Datei Azure-API-Anmeldeinformationen sowie Geheimnisse enthält, spielt die Sicherheit eine große Rolle. Der verschlüsselte, von SSH bereitgestellte Tunnel schützt die Inhalte der Datei.
Mit dem folgenden Befehl wird die lokale Datei .azure/config auf eine Azure-VM mit dem FQDN myserver.eastus.cloudapp.azure.com kopiert. Wenn Sie keinen FQDN festgelegt haben, können Sie auch die IP-Adresse der VM verwenden. Der Benutzername des Administrators auf der Azure-VM lautet azureuser. Die Datei wird im Verzeichnis /home/azureuser/ gespeichert. Fügen Sie Ihre eigenen Werte in diesen Befehl ein.
scp ~/.azure/config azureuser@myserver.eastus.cloudapp.com:/home/azureuser/config
Herunterladen eines Verzeichnisses von einem virtuellen Computer
In diesem Beispiel kopieren wir ein Verzeichnis mit Protokolldateien von der VM auf Ihre Arbeitsstation. Eine Protokolldatei kann möglicherweise sensible oder vertrauliche Daten enthalten. Mit SCP wird jedoch sichergestellt, dass die Inhalte der Protokolldateien verschlüsselt sind. Ein Protokollverzeichnis kann zu viele relevante Dateien enthalten, um sie einzeln zu kopieren. Daher wird in diesem Fall das Herunterladen des gesamten Verzeichnisses bevorzugt. Die Verwendung von SCP zum Übertragen der Dateien ist der einfachste und gleichzeitig ein sicherer Weg zur Übertragung des Protokollverzeichnisses und der Dateien auf Ihre Arbeitsstation.
Mit dem folgenden Befehl werden Dateien im Verzeichnis /home/azureuser/logs/ auf der Azure-VM in das lokale Verzeichnis „/tmp“ kopiert:
scp -r azureuser@myserver.eastus.cloudapp.com:/home/azureuser/logs/. /tmp/
Mit dem Flag -r
wird SCP angewiesen, die Dateien und Verzeichnisse rekursiv von dem Punkt des Verzeichnisses zu kopieren, der im Befehl angegeben ist. Beachten Sie auch, dass die Befehlszeilensyntax dem Kopierbefehl cp
ähnelt.