SSH Key für einzelne Benutzer

p0se

Member
Hallo,


ich habe auf meinem Server einen Nutzer angelegt der sich über Putty mit einem SSH Key anmelden kann. Aktuell kann er sich auch noch über sein normales Passwort anmelden.

Ich möchte das sich dieser Nutzer nur noch mit seinem SSH Key anmelden kann, alle anderen Nutzer sollen aber weiterhin ihr SSH Passwort nutzen.

Laut der Man ssh könnte man hier die Match Funktion nutzen.

Code:
Match User mustername
AuthenticationMethods 'publickey'

Sobald ich das eintrage und den Dienst SSH neustarte möchte er allerdings nicht so ganz.

Code:
Job for ssh.service failed because the control process exited with error code.
See "systemctl status ssh.service" and "journalctl -xe" for details.

Code:
● ssh.service - OpenBSD Secure Shell server
   Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2018-08-10 13:31:07 CEST; 6s ago
  Process: 17280 ExecStart=/usr/sbin/sshd -D $SSHD_OPTS (code=exited, status=0/SUCCESS)
  Process: 18864 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=255)
 Main PID: 17280 (code=exited, status=0/SUCCESS)

Aug 10 13:31:07 server.paderpro.de systemd[1]: ssh.service: Service hold-off time over, scheduling restart.
Aug 10 13:31:07 server.paderpro.de systemd[1]: ssh.service: Scheduled restart job, restart counter is at 5.
Aug 10 13:31:07 server.paderpro.de systemd[1]: Stopped OpenBSD Secure Shell server.
Aug 10 13:31:07 server.paderpro.de systemd[1]: ssh.service: Start request repeated too quickly.
Aug 10 13:31:07 server.paderpro.de systemd[1]: ssh.service: Failed with result 'exit-code'.
Aug 10 13:31:07 server.paderpro.de systemd[1]: Failed to start OpenBSD Secure Shell server.

Das ganze wäre ein Ubuntu 18.04

Hat da jemand einen Tipp für mich?
 
Vor das AuthenticationMethods gehört ein TAB und die Hochkommata dahinter gehören entsorgt.

Zeig bitte mal die vollständige sshd_config (ohne Kommentare, inklusive Leerzeilen und Whitespaces), danke.
 
Danke für den Hinweis. Hat aber leider nicht geklappt.

Code:
#	$OpenBSD: sshd_config,v 1.101 2017/03/14 07:19:07 djm Exp $

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.


Match User username
	AuthenticationMethods publickey


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

#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 no
#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

Der Dienst lässt sich nach wie vor nicht neustarten.
 
Code:
Generell ist "Match" nur für folgende Optionen erlaubt:

AllowAgentForwarding, AllowTcpForwarding, Banner, ChrootDirectory, ForceCommand, GatewayPorts, GSSAPIAuthentication, HostbasedAuthentication, KbdInteractiveAuthentication, KerberosAuthentication, MaxAuthTries, MaxSessions, PasswordAuthentication, PermitEmptyPasswords, PermitOpen, PermitRootLogin, PubkeyAuthentication, RhostsRSAAuthentication, RSAAuthentication, X11DisplayOffset, X11Forwarding und X11UseLocalHost

Quelle: https://www.thomas-krenn.com/de/wiki/OpenSSH_Konfiguration

Edit: Befürchte das wird nichts ;)
 
Last edited by a moderator:
dann teste ich mal

Code:
Match User admin
        PasswordAuthentication no
	PubkeyAuthentication yes


Funktioniert!

Der Teil muss natürlich ans ende der Config bzw. hinter "PasswordAuthentication yes" Macht ja sonst auch keinen Sinn.
 
Last edited by a moderator:
Richtig, Match muss immer am Ende der sshd_config definiert werden und nicht wie bei Deinem Post am Anfang der sshd_config
 
Back
Top