2017-06-22 1 views
-1

ausführen Ich entschuldige mich demütig, aber ich sah überall im Netz und ich konnte immer noch nicht tun. Dies ist der best Leitfaden, den ich bisher gefunden habe. Ich habe auch this als Leitfaden verwendet. Und trotzdem funktioniert nichts.Wie SCP in Bash-Skript mit öffentlichen Schlüssel

Ich musste ein Skript ausführen, das automatisch eine lokale Datei an einen Remote-Computer sendet. Sowohl lokale als auch Remote-Maschinen sind Linux. EDIT: Skript sollte nicht zur Eingabe des Passworts für den Benutzer aufgefordert - daher sollte ich öffentliche Schlüssel verwenden.

Was ich bisher getan habe:

  • EDIT: ausgeführt eval `ssh-agent` und dann ssh-add und dann ssh-copy-id

  • ausgeführt ssh-keygen auf dem lokalen Rechner, zu produzieren id_rsa und id_rsa.pub bei ~/.ssh Ordner

  • id_rsa.pub
  • Sent NO Passwort in ssh-keygen zu Remote-Maschine in seine ~/.ssh Ordner
  • Umbenannt id_rsa. pub in Remote-Maschine in authorized_keys fi Script

(da es ursprünglich nicht vorhanden war) le (in lokalen Rechner)

#!/bin/bash  
scp -i ~/.ssh/id_rsa -o BatchMode=yes -v file.txt [email protected]:/home/meuser 

Ausgabe der ausführlichen Modus von SCP:

./scp_example.sh 
Executing: program /usr/bin/ssh host webui01, user meuser2, command scp -v -t /home/meuser 
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 
debug1: Reading configuration data /etc/ssh/ssh_config 
debug1: Applying options for * 
debug1: Connecting to remotemachine [###.###.###.###] port 22. 
debug1: Connection established. 
debug1: permanently_set_uid: 504/505 
debug1: identity file /home/meuser/.ssh/id_rsa type 1 
debug1: loaded 1 keys 
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 
debug1: match: OpenSSH_5.3 pat OpenSSH* 
debug1: Enabling compatibility mode for protocol 2.0 
debug1: Local version string SSH-2.0-OpenSSH_4.3 
debug1: SSH2_MSG_KEXINIT sent 
debug1: SSH2_MSG_KEXINIT received 
debug1: kex: server->client aes128-cbc hmac-md5 none 
debug1: kex: client->server aes128-cbc hmac-md5 none 
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP 
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent 
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY 
debug1: Host 'remotemachine' is known and matches the RSA host key. 
debug1: Found key in /home/meuser/.ssh/known_hosts:1 
debug1: ssh_rsa_verify: signature correct 
debug1: SSH2_MSG_NEWKEYS sent 
debug1: expecting SSH2_MSG_NEWKEYS 
debug1: SSH2_MSG_NEWKEYS received 
debug1: SSH2_MSG_SERVICE_REQUEST sent 
debug1: SSH2_MSG_SERVICE_ACCEPT received 
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password 
debug1: Next authentication method: gssapi-with-mic 
debug1: Unspecified GSS failure. Minor code may provide more information 
Unknown code krb5 195 

debug1: Unspecified GSS failure. Minor code may provide more information 
Unknown code krb5 195 

debug1: Unspecified GSS failure. Minor code may provide more information 
Unknown code krb5 195 

debug1: Next authentication method: publickey 
debug1: Offering public key: /home/meuser/.ssh/id_rsa 
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password 
debug1: No more authentication methods to try. 
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 
lost connection 

Hoffentlich jemand Licht in diese Schuppen können.

Vielen Dank und viele Grüße.

+0

versuchen Sie mit Rsync wird es lösen: "Ich musste ein Skript ausführen, das automatisch eine lokale Datei an einen Remote-Rechner sendet." – Drako

+0

Versuchen Sie, 'ssh-copy-id' zu verwenden, um den öffentlichen Schlüssel zu installieren, anstatt ihn manuell zu tun. Wenn es möglich ist, kümmert er sich um die Vorbehalte. Außerdem (unter Angabe seiner Manpage): "[...] wenn der Remote-sshd" StrictModes "in seiner Konfiguration gesetzt hat, dann können der Home-Ordner, der ~/.ssh-Ordner und die ~/.ssh/authorized_keys-Datei des Benutzers Gruppenschreibbarkeit muss manuell deaktiviert werden, z. B. über 'chmod go-w ~ ~/.ssh ~/.ssh/authorized_keys'" –

+0

@Drako Sorry, ich habe versäumt zu erwähnen, dass ich bei der Übertragung von Dateien nicht nein sagen sollte "Passwort" Aufforderung. Ich habe rsync ausprobiert und es ist fast wie scp. Danke für den Vorschlag obwohl :) – thisNeil

Antwort

0

Ihr angebotener Schlüssel wird abgelehnt. Werfen Sie einen Blick in das Server-Protokoll für den Grund, stellen Sie sicher, dass das Home-Verzeichnis, .ssh und .ssh/authorized_keyus im Besitz des richtigen Benutzers ist und nicht von anderen geschrieben werden (was am häufigsten Fehler ist).

Verwandte Themen