PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : externen public key in Ubuntu importieren



Seiten : [1] 2

linuxbert
07.09.20, 12:02
Hallo alle zusammen!

Ich habe einen public key als xxx.pub Datei via E-Mail zugeschickt bekommen und soll diesen auf eine Ubuntu Maschine importieren, damit die Gegenseite ohne Passwort darauf zugreifen kann. Einen User habe ich bereits angelegt, über den das geschehen soll. Jetzt zu meiner Frage: Wie und wo muss ich diese xxx.pub Datei importieren? Muss ich dem User irgendwelche Rechte geben? Oder dem zuordnen. Ich bin aus den Anleitungen nicht ganz schlau geworden, da diese immer nur erklären, wie man ein Schlüsselpaar erzeugt. Nur in meinem Fall ist der Public Key schon vorhanden.

LG

nopes
07.09.20, 12:23
Das zu bevorzugende Vorgehen ist hier beschrieben: https://www.ssh.com/ssh/copy-id

linuxbert
07.09.20, 12:46
Das zu bevorzugende Vorgehen ist hier beschrieben: https://www.ssh.com/ssh/copy-id

Denn ersten Punkt überspringe ich dann? "Generate an SSH Key" Das Schlüsselpaar existiert ja schon. Ein xxx.pub den ich jetzt auf meinem Windows Desktop habe. Dieses File muss ja erstmal ins Ubuntu, nur wo dort hin?

nopes
07.09.20, 13:16
https://upcloud.com/community/tutorials/use-ssh-keys-authentication/#point-4 - ab Schritt 8 - 8. Open an SSH connection to your cloud server and go to the SSH key directory - kannst du weiter machen.

marce
07.09.20, 13:44
vor allem auch mal in das File reinschauen, ob das auch dem Format entspricht, welches der sshd gerne hätte...

Ggf. muss man das vorher noch mit openssl konvertieren...

linuxbert
07.09.20, 14:32
Das File stimmt vom Format her. Am Ende steht an der Stelle ...56xC== user@server im zugesandeten Public Key ...4rT6Z== promoter@push1. Funktioniert also noch nicht.

Sauerland1
07.09.20, 15:10
Der Inhalt des Files beginnt mit ssh-rsaxxxxxxx und endet mit NAME@SERVER?

Dann kommt der bei dem entsprechenden User in die Datei ~/.ssh/authorized_keys eingefügt.
.ssh ist ein verstecktes Verzeichnis.

linuxbert
07.09.20, 16:14
Der Inhalt des Files beginnt mit ssh-rsaxxxxxxx und endet mit NAME@SERVER?

Ja.


Dann kommt der bei dem entsprechenden User in die Datei ~/.ssh/authorized_keys eingefügt.
.ssh ist ein verstecktes Verzeichnis.

Ich werde nicht ganz schlau aus dem Satz. Ich habe jetzt NAME@SERVER mit dem angelegtenUser@ServermitPublicKey ersetzt und ssh neu gestartet. Kein Zugang. Der User kann sich mit Passwort von außen anmelden, aber nicht ohne mit PublicKey.

Das ist meine sshd_config:

#Port 22
Port 26324
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::


#Protocol 2

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
#SyslogFacility AUTH
#LogLevel INFO

# Authentication:

LoginGraceTime 2m
#PermitRootLogin prohibit-password
#StrictModes yes
#MaxAuthTries 6
#MaxSessions 10

PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
#PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
PasswordAuthentication. Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem sftp /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
# X11Forwarding no
# AllowTcpForwarding no
# PermitTTY no
# ForceCommand cvs server

#Match group sftp
#ChrootDirectory /home
#X11Forwarding no
#AllowTcpForwarding no
#ForceCommand internal-sftp

nopes
07.09.20, 17:17
Wie wäre es wenn du es auf den vorgeschlagenen Weg machst, also mit ssh-copy-id, genau wegen sowas wurde es einst gemacht, egal muss natürlich auch ohne gehen.

Aber:
In den Generierten Datein änderst du nichts.
An der sshd Konfiguration wirst du mit großer Sicherheit nichts ändern müssen - ggf. Passwort Anmeldungen deaktivieren, aber das machst du erst, wenn das mit den Schlüsseln klappt.
Schau dir genau an, was beim Login passiert, dafür kannst du Debug Level vom SSH Client anpassen - "ssh -v user@host", "ssh -vv user@host" bzw "ssh -vvv user@host" - sa https://www.tecmint.com/enable-debugging-mode-in-ssh/

Sauerland1
07.09.20, 17:30
Wie wäre es wenn du es auf den vorgeschlagenen Weg machst, also mit ssh-copy-id, genau wegen sowas wurde es einst gemacht, egal muss natürlich auch ohne gehen.
Das kann er aber nicht machen, das müsste derjenige machen, von dem er den key hat.
Daher Server starten, mit dem Client versuchen einzuloggen und dann einen key mit ssh-keygen erzeugen bzw. den key mit ssh-copy-id kopieren

Ich habe einen public key als xxx.pub Datei via E-Mail zugeschickt bekommen und soll diesen auf eine Ubuntu Maschine importieren, damit die Gegenseite ohne Passwort darauf zugreifen kann.

Sauerland1
07.09.20, 17:43
Ich werde nicht ganz schlau aus dem Satz. Ich habe jetzt NAME@SERVER mit dem angelegtenUser@ServermitPublicKey ersetzt und ssh neu gestartet. Kein Zugang. Der User kann sich mit Passwort von außen anmelden, aber nicht ohne mit PublicKey.
Du sollst nichts ersetzen, du sollst die ganze Zeichenfolge von ssh-rsa xxxxx bis xxxxx NAME@SERVER kopieren und in die Datie ~/.ssh/authorized_keys mit einer Leerzeile zum vorigen Eintrag einfügen.
Wobei:
~ bezeichnet das /home/USERNAME des User, auf den sich die Gegenstelle verbinden will, (USERNAME) ist ein Platzhalter
.ssh ist ein verstecktes Verzeichnis in dem /home/USERNAME
authorized_keys ist die Datei, in der du den Schlüssel hineinkopieren sollst.
NAME@SERVER sind auch nur Platzhalter für die in deinem key mitgelieferte Originale.

linuxbert
07.09.20, 19:17
Du sollst nichts ersetzen, du sollst die ganze Zeichenfolge von ssh-rsa xxxxx bis xxxxx NAME@SERVER kopieren und in die Datie ~/.ssh/authorized_keys mit einer Leerzeile zum vorigen Eintrag einfügen.



Der mir zugesandte Public Key hat die Form ssh-rsa xxxxx...xxxx== promoter@push1 und steht so in der [I]~/.ssh/authorized_keys.

Was meinst du mit "mit einer Leerzeile zum vorigen Eintrag einfügen"? Welcher vorige Eintrag?

Sauerland1
07.09.20, 19:50
Der mir zugesandte Public Key hat die Form ssh-rsa xxxxx...xxxx== promoter@push1 und steht so in der [I]~/.ssh/authorized_keys.
Dann sollte sich dein Gegenüber doch verbinden können, soweit auf dem Router (falls vorhanden) eine Portweiterleitung erstellt wurde und in deiner Firewall (falls vorhanden und am laufen) der Port ebenso geöffnet ist. Ebenso sollte der ssh-Server dann natürlich laufen.

Der Port wäre 26324

linuxbert
07.09.20, 20:03
Dann sollte sich dein Gegenüber doch verbinden können, soweit auf dem Router (falls vorhanden) eine Portweiterleitung erstellt wurde und in deiner Firewall (falls vorhanden und am laufen) der Port ebenso geöffnet ist. Ebenso sollte der ssh-Server dann natürlich laufen.

Der Port wäre 26324

Und genau das klappt nicht. Als User mit Passwort kann er sich über diesen Port anmelden, ohne Passwort (PasswordAuthentication = no) kommt: Permission denied (publickey).
Couldn't read packet: Connection reset by peer

Sauerland1
07.09.20, 20:14
Und genau das klappt nicht. Als User mit Passwort kann er sich über diesen Port anmelden, ohne Passwort (PasswordAuthentication = no) kommt: Permission denied (publickey).
Couldn't read packet: Connection reset by peer
Dann sollte der User sein key mit:

ssh-copy-id -p 26324 NAME@SERVER
kopieren.

Das hier noch in die /etc/ssh/sshd_config einfügen:

AuthorizedKeysFile .ssh/authorized_keys
PubkeyAuthentication yes

ssh-server neu starten.

linuxbert
07.09.20, 20:20
Ok, das werde ich morgen machen und das Ergebnis hier mitteilen. Tausend Dank schonmal.

marce
07.09.20, 20:51
... und Logfiles anschauen.

Relevant sind auch die Rechte von .ssh und dem authorized_keys-File.

linuxbert
08.09.20, 11:55
... und Logfiles anschauen.

Relevant sind auch die Rechte von .ssh und dem authorized_keys-File.

Danke. Wo kann ich die einsehen bzw. wie ändern?

nopes
08.09.20, 12:03
ls zeigt dir die Rechte an, chmod verändert diese - https://www.computerhope.com/unix/uchmod.htm Ganz wichtig ist, dass "authorized keys" nur von dir gelesen werden darf, falls das dein Problem ist würdest du aber ein aussagekräftige Fehlermeldung erhalten, hast du mal ssh debugt bzw kannst die Ausgaben hier posten?

linuxbert
08.09.20, 15:14
Could not open authorized keys '/home/USER/.ssh/authorized_keys': No such fil$


Der Pfad existiert aber und der Schlüssel ist auch im autherized_keys.

Sauerland1
08.09.20, 15:58
Einen User habe ich bereits angelegt, über den das geschehen soll
Logge dich als der User ein, zu dem sich dein Gegenpart verbinden will und poste als User ausgeführt:

ls -al ~/.ssh/

linuxbert
08.09.20, 16:04
Logge dich als der User ein, zu dem sich dein Gegenpart verbinden will und poste als User ausgeführt:

ls -al ~/.ssh/

/home/USER/.ssh/': Permission denied

Sauerland1
08.09.20, 16:19
Wie heisst der User, zu dem sich dein Freund verbinden möchte?
Klarnamen bitte.

linuxbert
08.09.20, 16:36
Wie heisst der User, zu dem sich dein Freund verbinden möchte?
Klarnamen bitte.

Ich verstehe die Frage nicht so recht. USER soll sich über Filezilla auf dem Server als USER anmelden können.

Sauerland1
08.09.20, 16:42
Ich verstehe die Frage nicht so recht. USER soll sich über Filezilla auf dem Server als USER anmelden können.

Wir sind aber hier bei ssh....

Läuft auf dem Client (nicht auf deiner Maschine) auch ein Linux?

Wenn ja, dann soll der dort ausführen:

ssh-keygen (falls noch kein key)

ssh-copy-id

linuxbert
08.09.20, 16:45
Von ihm habe ich den PublicKey bekommen. Er verbindet sich problemlos mit anderen Rechner, nicht bei mir, und da funktioniert es. Es muss leider explizit dieser Schlüssel sein.

Sauerland1
08.09.20, 16:58
Von ihm habe ich den PublicKey bekommen. Er verbindet sich problemlos mit anderen Rechner, nicht bei mir, und da funktioniert es. Es muss leider explizit dieser Schlüssel sein.
Läuft auf seinem PC ein Linux oder ein Windows?

linuxbert
08.09.20, 17:11
Beides, Windows und Linux

Sauerland1
08.09.20, 17:23
Und von welchem System ist der key?
Wenn Linux, dann kann der den key selber hinüberschreiben mit ssh-copy-id

linuxbert
08.09.20, 17:31
Der Publickey ist von ihm, damit er passwortlos sich anmelden kann. Am ende soll ein Programm das automatisiert machen.