ubuntuusers.de

SSH Public Key übertragen

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

regenpfeifer

Avatar von regenpfeifer

Anmeldungsdatum:
18. April 2006

Beiträge: 993

Wohnort: Straubing, Bayern

Hallo,

ich habe eben einen neuen Server mit Ubuntu 12.04 LTS eingerichtet. Der Server steht bei 1&1, ich habe also keinen physischen Zugriff. Nun wollte ich daran gehen, als erstes den SSH-Zugriff zu konfigurieren. Ich möchte gerne (1) den Zugang ausschließlich mit einem Public Key ermöglichen und (2) den root-Login nicht zulassen.

Dazu möchte ich meinen Public Key auf den Benutzeraccount "myuser" meines Servers übertragen. Den Account habe ich nach Erzeugung in die Gruppe "sudoers" aufgenommen, damit ich damit bei Bedarf root-Rechte habe.

Die Übertragung des Keys nehme ich mit folgendem Befehl vor:

ssh-copy-id -i ~/.ssh/id_rsa.pub myuser@my.ip.address

Leider erhalte ich daraufhin die Fehlermeldung:

bash: /home/myuser/.ssh/authorized_keys: Permission denied

Das Verzeichnis .ssh sowie die (leere) Datei authorized_keys existieren mit den Verzeichnis- bzw. Dateirechten 700 / 600.

Wenn ich dasselbe mit root versuche, also so:

ssh-copy-id -i ~/.ssh/id_rsa.pub root@my.ip.address

dann funktioniert die Übertragung des Keys tadellos und ich kann mich damit auch einloggen. Aber ich hätte das ja gerne mit dem "normalem" Account, damit ich root-Login anschließend deaktivieren kann.

Ich habe das beschriebene Verfahren vor längerer Zeit mit einem anderen Server und Ubuntu 10.04 LTS problemlos so praktiziert. Nur jetzt stehe ich irgendwo auf dem Schlauch. Wer kann mir weiterhelfen?

Danke und viele Grüße, Hermann Josef

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

Hi,

bitte poste mal die /etc/ssh/sshd_config von deinem Server.

Vielen Dank u1000

regenpfeifer

(Themenstarter)
Avatar von regenpfeifer

Anmeldungsdatum:
18. April 2006

Beiträge: 993

Wohnort: Straubing, Bayern

Hallo,

nachstehend die sshd_config:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile	%h/.ssh/authorized_keys

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

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

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

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

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

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

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

Subsystem sftp /usr/lib/openssh/sftp-server

# 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

Ich hab die Datei auch nochmals als Anhang beigefügt, weil der Code hier irgendwie nicht richtig dargestellt wird...

Vielen Dank und viele Grüße, Hermann Josef

Bearbeitet von pepre:

Codeblock-Syntax-Rätsel umgangen

sshd_config (2.4 KiB)
Download sshd_config

duesentriebchen

Avatar von duesentriebchen

Anmeldungsdatum:
10. Februar 2012

Beiträge: 713

Wohnort: Im Inntal

Ist das /home deines Users verschlüsselt?
Wenn dem so ist, dann muss der Key in /etc abgelegt werden.

Mehr dazu wenn Ich vorm Rechner zu Hause sitze 😀

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

Da stimmen die Permission oder Ownership des ~/.ssh im User-Home nicht. Vielleicht aus Versehen als Root angelegt?!

In dem Fall hilft ein chown. Oder einfach ganz löschen und hoffen, daß ssh-copy-id es schon richtig anlegen wird.

regenpfeifer

(Themenstarter)
Avatar von regenpfeifer

Anmeldungsdatum:
18. April 2006

Beiträge: 993

Wohnort: Straubing, Bayern

Hallo zusammen,

danke für Eure Hinweise...

@duesentriebchen: nein, das home-Verzeichnis ist unverschlüsselt, ganz frische, "normale" Grund-Installation.

@frostschutz: Permissions des .ssh-Verzeichnisses für den myuser stimmen. Es funktioniert weder mit angelegtem Verzeichnis noch ohne.

Viele Grüße, Hermann Josef

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7790

Irgendwo ist der Wurm drin. Ausgabe von stat ~/ ~/.ssh ~/.ssh/authorized_keys?

u1000

Anmeldungsdatum:
2. Oktober 2011

Beiträge: 1850

u1000 schrieb:

Hi,

bitte poste mal die /etc/ssh/sshd_config von deinem Server.

Vielen Dank u1000

Bitte entferne das "#" in der vor der Zeile, es sollte dann so aussehen:

AuthorizedKeysFile	%h/.ssh/authorized_keys

Viele Grüße u1000

EDIT: und dann natürlich den sshd auf dem Server neu starten:

sudo service ssh restart

regenpfeifer

(Themenstarter)
Avatar von regenpfeifer

Anmeldungsdatum:
18. April 2006

Beiträge: 993

Wohnort: Straubing, Bayern

Hallo,

@u1000: Die Raute habe ich entfernt und es sieht so aus:

AuthorizedKeysFile	%h/.ssh/authorized_keys

Nach Neustart von SSH bringt aber auch dies leider keine Lösung. Ich habe auf meinem anderen Server (wo es wie gesagt problemlos funktioniert) nachgesehen und auch dort ist die betreffende Zeile auskommentiert.

Allerdings hat sich das Problem nun auf andere Weise gelöst. Ich habe den Server über die virtuelle Konsole komplett neu gestartet - und nun geht's...

Seltsam. Danke Euch allen für die Hilfe.

Beste Grüße, Hermann Josef

Antworten |