• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

SSH Rechte

zero0109

Hacker
Da ich hier eine Menge User im System habe, würde es mich interessieren, ob die Möglichkeit besteht, bestimmten Usern das Einloggen per ssh zu verbieten.
 

gaw

Hacker
Natürlich, so sollte man es normalerweise auch machen. Das ganze lässt sich beispielsweise über asymetrische RSA-Authentifizierung mit public and private keys realisieren.

Zum Beispiel otto auf dem Rechner client soll Zugriff haben, natürlich nur auf seinem home Verzeichnis auf dem server:

otto@client:/home/otto> -- ---------über ssh--------------otto@server:/home/otto>

Geht wie folgt:

client: Otto muss ein Schlüsselpaar basteln, das geht so:

>ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/otto/.ssh/id_rsa): <ENTER>
Enter passphrase (empty for no passphrase): <GEHEIM>
Enter same passphrase again:<GEHEIM>
Your identification has been saved in /home/otto/.ssh/id_rsa.
Your public key has been saved in /home/otto/.ssh/id_rsa.pub.
The key fingerprint is:
der geht euch gar nichts an;-)

Das macht der client. Den public-key also die Datei /home/otto/.ssh/id_rsa.pub (und nur die!)
gibt er dir (per Diskette, usb-stick oder ftp)

Jetzt bist du dran
Server:
1) Benutzer otto einrichten
useradd -m otto


2) Das Verzeichnis .ssh in /home/otto anlegen am besten als otto:

otto@server:~/>mkdir .ssh

3) Dem ssh-Server den öffentlichen Schlüssel bekanttgeben:

otto@server:~/>cat /pfad_wohin_abgelegt/id_rsa.pub >> .ssh/authorized_keys
(Lieber nicht mit Editor versuchen, das geht oft schief. in is_rsa.pub ist nur eine Zeile auch wenn das in manchem Editor anders dargestellt wird. Das Anhängen ist beim ersten Schlüssel nicht wichtig, aber vielleicht soll sich Otto noch von anderen Rechnern anmelden dürfen;-))

3) Einige Einstellungen in der /etc/ssh/sshd_config
vornehmen:

# Root verbieten sich einzuloggen:
PermitRootLogin yes

# Strengere Überprüfungen
StrictModes yes

# RSA-Athentifizierung ermöglichen
RSAAuthentication yes

# Authentifizierung über öffentliche Schlüssel
PubkeyAuthentication yes

# Datei für für öffentliche Schlüssel
AuthorizedKeysFile .ssh/authorized_keys

# Ganz wichtig, ansonsten versucht ssh nach einer
# Ablehnung noch einmal über den unixaccount
# die Authentifizierung zu erledigen
PasswordAuthentication no


anschließen sshd noch einmal starten
z.B.:

>/etc/init.d/./sshd restart

oder

>rcsshd restart

Das ist eine ziemlich sichere Angelegenheit und sehr flexibel. Im Grunde lässt sich damit exakt bestimmen, von welchem Rechner aus jemand auf welchem user mit ssh einloggen darf.

mfG
gaw
 
Oben