So laden Sie lokale Dateien auf Azure Linux VM hoch? - Mein Rechner für Azure VM

958
151291

Ich wurde mit Azure Ubuntu Server 16.04 VM und Installed LAMP erstellt. Jetzt möchte ich meine Projektdateien auf Azure VM hochladen. Wie kann ich das tun? Ich habe einen öffentlichen SSH-Schlüsseltext bei mir. Kann ich das über ssh archivieren?

eingehende Regeln für HTTP, https und ssh aktiviert.

Schritt 1:

$ scp -r foo your_username@remotehost.edu:/some/remote/directory/bar

Error:

Permission denied (publickey)

Schritt 2:

scp -i ~/.ssh/id_rsa.pub /var/www/html azureuser@sample.region.cloudapp.azure.com:phpinfo.php /var/www/html 

Error:

cp: omitting directory '/var/www/html' Warning: Identity file /home/azureuser/.ssh/id_rsa.pub not accessible: No such file or directory. Permission denied (publickey) 

Schritt 3:

ssh-copy-id -i ~/.ssh/id_rsa.pub azureuser@sample.region.cloudapp.azure.com` 

Hinweis: Der Schlüssel wird in VMs `/home/.ssh/authorized_keys angehängt

Error:

cp: omitting directory '/var/www/html' Enter passphrase for key '/home/azureuser/.ssh/authorized_keys': Permission denied (publickey) 

Schritt 4: erneut mit Option -r versucht

azureuser@myVM:~$ scp -r /var/www/html azureuser@sample.region.cloudapp.azure.com:phpinfo.php /var/www/html 

Error:

cp: cannot copy a directory, '/var/www/html', into itself, '/var/www/html/html' Permission denied (publickey). 
0
Verwenden Sie die Option -i` für den Befehl 'scp`, und geben Sie den vollständigen Pfad zu Ihrem privaten SSH-Schlüssel für diese Option -i an Alex vor 6 Jahren 0
@Alex - es gibt Fehler, meine Frage wurde aktualisiert. 151291 vor 6 Jahren 0
@ 151291, fügen Sie die Option "-r" in Ihren Befehl ein und kopieren Sie ein Verzeichnis und dessen Inhalt. Nancy Xiong vor 6 Jahren 0
@Alex - `cp: Ein Verzeichnis '/ var / www / html' kann nicht in sich selbst kopiert werden. '/ Var / www / html / html' Berechtigung abgelehnt (publickey) .` 151291 vor 6 Jahren 0
@Alex - Ich denke, ich muss die Erlaubnis von -i ssh Pfad ändern. es kann helfen 151291 vor 6 Jahren 0
@ 151291 Sie können einen Zielpfad auswählen, für den der Azureuser Schreibberechtigungen besitzt, z. B. `/ home / azureuser / test`. Stellen Sie außerdem sicher, dass der aktuelle Benutzer über Berechtigungen im Quellhost verfügt. Nancy Xiong vor 6 Jahren 0
@ NancyXiong-MSFT Ich bin Anfängerin in Azur, kann ich noch mehr dazu erklären ?, Beispielbefehle helfen mir mehr. 151291 vor 6 Jahren 0
Wenn Sie "scp" verwenden, sollten Sie den privaten Schlüssel in der Option "-i" verwenden, nicht einen öffentlichen. Der öffentliche Schlüssel sollte sich auf der Azure-Seite in der Datei `~ / .ssh / authorised_keys` befinden. Wenn Sie "scp" versuchen, stellen Sie sicher, dass die Berechtigungen des privaten Schlüssels 600 sind (er darf von niemandem gelesen werden können, aber Sie), andernfalls wird der Vorgang abgelehnt. Vergewissern Sie sich außerdem, dass die von Ihnen verwendeten Schlüssel das ursprüngliche Zeilenende haben (die Zeile sollte nur mit \ n` (0x0A) abgeschlossen sein, nicht mit einem `\ r \ n` von Windows 0x0D, 0x0A). Alex vor 6 Jahren 0
@Alex - Wie finde ich meinen privaten Schlüsselpfad? 151291 vor 6 Jahren 0
@ 151291 Die Schlüssel sollten paarweise sein. Der private Schlüssel wird normalerweise als ~ / .ssh / id_rsa-Datei gespeichert. Nancy Xiong vor 6 Jahren 1
Wenn Sie Zugriff auf Azure haben, haben Sie mit 2 Verschlüsselungsdateien Zugriff erhalten, eine ist ein öffentlicher Schlüssel, der sich auf einem Remote-Server befinden sollte, und ein anderer ist ein privater Schlüssel, der auf einer Clientseite verwendet wurde, um eine Verbindung zu einem Remote-Server herzustellen. Der Pfad, in dem Sie den privaten Schlüssel gespeichert haben, ist ein Pfad, den Sie der Option "-i" von scp angeben müssen Alex vor 6 Jahren 0
@ NancyXiong-MSFT, @alex - ja, benutzte den privaten Schlüssel für -i, jetzt mit scp versucht, der Fehler des öffentlichen Schlüssels ist verschwunden, aber das Abrufen des Verzeichnisses findet keine Ausnahme mit -r. `scp /var/www/html/info.php azureuser@sample.region.cloudapp.azure.com: / var / www / html /var/www/html/info.php: Keine solche Datei oder Verzeichnis '. 151291 vor 6 Jahren 0
Dank an alle, die funktionieren, das letzte Problem, das in der azurblauen Version ausgeführt wird, muss ich mein lokales Maschinenterminal verwenden. 151291 vor 6 Jahren 0

1 Antwort auf die Frage

0
Bennett

Wenn Sie sich selbst in einer * nix-Umgebung befinden, können Sie mit dem öffentlichen Schlüssel auth auf den Server zugreifen?

user@mypc:> ssh azureuser@sample.region.cloudapp.azure.com 

Wenn dies als erfolgreich gilt, stellen Sie sicher, dass Ihr Benutzer über Schreibrechte in diesem Ordner verfügt. Andernfalls können Sie den Benutzer zur Webserver-Benutzergruppe hinzufügen: usermod -aG www-data azureuser Ersetzen Sie "www-data" durch die Gruppe, die den Ordner / var / www / html besitzt

Sobald die Berechtigungen sortiert sind, sollte Folgendes funktionieren:

user@mypc:> scp -r ./folder azureuser@sample.region.cloudapp.azure.com:/var/www/html 

oder

user@mypc:> scp ./index.html azureuser@sample.region.cloudapp.azure.com:/var/www/html/ 
Vielleicht sollten Sie als Test etwas Ähnliches ausprobieren: `user @ mypc:> scp ./testfile.txt azureuser@sample.region.cloudapp.azure.com: ~ /` Dies würde dazu führen, dass der öffentliche Schlüsselauthentifizierung nicht das Problem ist. Bennett vor 6 Jahren 0