Ich habe gerade einen neuen virtuellen Ubuntu-Server erstellt und bin dabei, ihn für den produktiven Einsatz zu härten. Ich habe derzeit ein Root-Konto. Ich möchte Folgendes tun:
- Erstellen Sie einen neuen Benutzer (nennen wir ihn
jim
für den Rest). Ich möchte, dass sie ein/home/
Verzeichnis haben. - Geben Sie
jim
SSH-Zugriff. - Lassen Sie root aber nicht durchführen Operationen.
jim
su
sudo
- Deaktivieren Sie den Root-SSH-Zugriff.
- Verschieben Sie SSHd an einen nicht standardmäßigen Port, um Brute-Attacken zu verhindern.
Mein Problem liegt bei den ersten beiden Punkten. Ich habe bereits festgestellt, useradd
aber aus irgendeinem Grund kann ich mich nicht als ein Benutzer anmelden, der damit über SSH erstellt wurde. Muss ich SSHd schlagen, um dies zu ermöglichen?
/etc/nologin
Akte, aber sie ist leer. Ich habe es gelöscht und ssh neu gestartet, aber es reagiert immer noch nur,Permission denied, please try again.
wenn ich mich anmelde.Antworten:
Bearbeiten (als root)
/etc/ssh/sshd_config
. Fügen Sie Folgendes hinzu:Port 1234
Lässt SSH auf Port 1234 lauschen. Sie können jeden nicht verwendeten Port von 1 bis 65535 verwenden. Es wird empfohlen, einen privilegierten Port (Port 1-1024) zu wählen, der nur von Root verwendet werden kann. Wenn Ihr SSH-Dämon aus irgendeinem Grund nicht mehr funktioniert, kann eine unerwünschte Anwendung die Verbindung nicht abfangen.PermitRootLogin
Erlaubt keine direkte Root-Anmeldung.AllowUsers jim
Ermöglicht dem Benutzerjim
, sich über SSH anzumelden. Wenn Sie sich nicht von überall aus anmelden müssen, können Sie dies sicherer machen, indem Sie jim auf eine IP-Adresse beschränken (ersetzen Sie 1.2.3.4 durch Ihre tatsächliche IP-Adresse):Änderungen an der Konfigurationsdatei
/etc/ssh/sshd_config
werden nicht sofort übernommen. Führen Sie zum erneuten Laden der Konfiguration Folgendes aus:quelle
root
Login, aber (vielleicht sind die Einrichtung Sie noch den Server), müssen SiePermitRootLogin
zuyes
und auch hinzufügenroot
zuAllowUsers
.useradd -m -G sudo,adm -s /bin/bash mecharok
undpasswd mecharok
AllowUsers username1,username2
, um SSH-Anmeldungen auf diese Benutzer zu beschränken. Stellen Sie sicher, dasssshd
neu geladen wird. Wenn dies nicht hilft, erstellen Sie bitte eine neue Frage.SSH ist sehr wählerisch in Bezug auf die Verzeichnis- und Dateiberechtigungen. Stelle sicher das:
Kopieren Sie Ihren öffentlichen Schlüssel in die Datei authorized_keys.
Es gibt KEINE Notwendigkeit , den Benutzer in / etc / ssh / ssh_config hinzuzufügen.
quelle
~./ssh
als root angelegt und dem Benutzer nie den Besitz gegeben./root/.ssh/authorized_keys
anstatt zu verwenden/home/bob/.ssh/authorized_keys
.ssh_config
. Das Einrichten dieses Verzeichnisses und dieser Datei war ausreichend.sudo su --login {user}
)ssh-keygen
anzumelden und auszuführen -> Der Ordner ".ssh", der Schlüssel + das Zertifikat und die Berechtigungen sind vervollständigt. Erstellen Sie einfach authorisierte_Schlüssel gemäß Ihren Anweisungen.Es wird Hinweise geben,
/var/log/auth.log
warum SSH (oder PAM) den Anmeldeversuch ablehnt. Zusätzliche Hinweise können mithilfe der-v
Option mit dem ssh- Client gefunden werden. Einige häufige Situationen, von denen einige in den anderen Antworten erwähnt werden:man passwd
, setzen Sie das Kennwort zurück oder überprüfen Sie den Inhalt von/etc/shadow
)./etc/ssh/sshd_config
konfiguriert ist , die Anmeldung nicht zuzulassen (DenyUsers
,AllowUsers
,PasswordAuthentication
,PubkeyAuthentication
,UsePAM
usw., sieheman sshd_config
)./etc/shells
./etc/ssh
,/home/jim/.ssh
,/home/jim/.ssh/*
etc.Ich würde auch empfehlen, adduser (anstelle von useradd ) zum Hinzufügen neuer Benutzer zu verwenden. Es ist ein wenig freundlicher über verschiedene Standard-Kontoeinstellungen.
Solange der Benutzer nicht Teil der
admin
Gruppe ist, kann er nicht als root angemeldet werden . Damit sie su verwenden können , müssen Sie ein root-Passwort (passwd root
) festlegen. Danach empfehle ich die EinstellungPermitRootLogin=no
in/etc/ssh/sshd_config
.quelle
Ich könnte mich irren, aber ich muss immer den Server-Daemon installieren, bevor ich eine Verbindung herstellen kann (zumindest auf dem Desktop). Ssh ist standardmäßig installiert, aber das ist nur der Client
Dieser Befehl installiert den Server
sudo apt-get install openssh-server
Sie können den Port ändern und die Root-Anmeldung durch Bearbeiten beenden
/etc/ssh/sshd_config
Dies erfordert jedoch einen Neustart des Dienstes.
sudo service ssh restart
quelle
sudo /etc/init.d/ssh reload
, aber trotzdem gute Informationen.Jim hat keinen SSH-Zugang, bis Sie ein Passwort festgelegt haben. Als root ausführen:
Wenn dieser Befehl ein "!" Zeichen, dann ist die Anmeldung für dieses Konto deaktiviert. Wenn Sie
passwd jim
als root ausführen, werden Sie aufgefordert, eine neue und bestätigte Kennwortzeichenfolge einzugeben. Danach sollte der obige Befehl grep eine Hash-Zeichenfolge zurückgeben, die das Kennwort für jim darstellt.Stellen Sie außerdem sicher, dass jim über eine standardmäßig festgelegte Anmeldeshell und ein vorhandenes Basisverzeichnis verfügt.
Beachten Sie den Beitrag von lekensteyn, um Informationen zum Ändern der SSH-Servereinstellungen zu erhalten.
quelle
In meinem Fall hatte ich eine Gruppe, die Zugriff hatte, und der Benutzer war nicht Teil davon. Das hat es für mich gelöst.
Verwenden Sie das obige Beispiel mit dem Benutzer
jim
und nehmen Sie an, dass Mitglied der Gruppejim
die einzige Gruppe ist (geben Sie dengroups
Befehl ein, während Sie angemeldet sindjim
, um Gruppen zu finden, zu denen Sie gehören). In meiner/etc/ssh/sshd_config
Datei hatte ich einenAllowGroups sshusers
Eintrag und musste ihn daherjim
dersshusers
Gruppe hinzufügen . Im Folgenden wird beschrieben, wie dies erreicht wird:Ersetzen Sie Ihre Gruppe und Ihren Benutzer entsprechend Ihrer Konfiguration.
quelle
jim
als Dummy-Benutzer angegeben wurde, um den Kontext bereitzustellen. Der Artikel hier erklärt es gut.In einigen Fällen
PasswordAuthentication
ist das standardmäßig deaktiviert.Bitte überprüfen Sie
/etc/ssh/sshd_config
, ob dasPasswordAuthentication
Attribut auf gesetzt istyes
.quelle
@Lekensteyn Ich kann keinen Kommentar zur Beantwortung der Frage hinterlassen, da ich nicht den Ruf habe - aber ich habe versucht, sie anzuhängen
zu meiner / etc / ssh / sshd_config Datei und jetzt kann ich nicht mehr mit meinem existierenden Benutzer oder dem neuen Benutzer sshen.
quelle
AllowUsers existingUser@* newUser@*