
Ich habe festgestellt, dass ich keine Verbindung mehr zum Webserver unter herstellen kann x.x.202.50
. Gestern habe ich die folgende SSH-Konfigurationsdatei geändert: /share/homes/admin/.ssh/config
durch Hinzufügen der folgenden Einstellungen:
# ssh (secure shell) configuration file
Host webserver
HostName x.x.212.50
User user1
IdentityFile ~/.ssh/id_rsa `
Der Grund, warum ich dies getan habe, besteht darin, die Schlüsselanmeldung für Synchronisierungszwecke (mit Unison
) zu ermöglichen.
Wenn ich jetzt versuche, eine Verbindung zum Server herzustellen, erhalte ich die folgende Fehlermeldung:
Falscher Besitzer oder falsche Berechtigungen für /share/homes/admin/.ssh/config
Ich stelle die Verbindung Putty
von Windows 10 und von einem Linux-Server zu einem anderen Linux-Server her.
Ich muss mich mit dem Server verbinden, da ich an einem Projekt beteiligt bin, und ich weiß nicht, wie das geht. Weiß jemand, wie das geht?
Antwort1
Sie müssen die Berechtigungen des .ssh-Verzeichnisses ändern. Führen Sie Folgendes aus (ich habe festgestellt, dass 600 das Problem nicht alleine behebt):
chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
Antwort2
Die allgemeine Regel für Dateien, die die Sicherheit beeinträchtigen können (private Schlüssel, Konfigurationsdateien, autorisierte Schlüssel), lautet, dass sie für niemanden außer dem Eigentümer beschreibbar sein sollten (die privaten Schlüssel sollten nicht zugänglich sein!).
Der Fehler kommt von derOpenSSH-Codeunten:
if (((sb.st_uid != 0 && sb.st_uid != getuid()) ||
(sb.st_mode & 022) != 0))
fatal("Bad owner or permissions on %s", filename);
Die Übersetzung ins Englische bedeutet also, dass die Konfigurationsdatei Eigentum von root oder dem Benutzer sein muss, der sie ausführt, ssh
und dass sie von keiner Gruppe oder anderen Benutzern geschrieben werden kann.
Wie bereits in den Kommentaren erwähnt, haben Sie diese Berechtigungen wahrscheinlich irgendwie an jemanden weitergegeben. Das Entfernen dieser Berechtigungen sollte das Problem also beheben:
chmod go-w /share/homes/admin/.ssh/config
Antwort3
Ich habe eine Linux-Einzelbenutzermaschine, die dasselbe .ssh-Verzeichnis mit dem Root-Konto teilt. /root/.ssh ist ein symbolischer Link, der auf den Ordner des Benutzers ‚/home/username/.ssh‘ verweist.
Ich habe erst vor Kurzem eine Datei ~/.ssh/config hinzugefügt und dies führte dazu, dass SSH mir die Fehlermeldung ausgab, wenn ich SSH und SSHFS vom Root-Konto aus aufrief. Die Lösung für mich war, Folgendes zu tun:
chown root:$USER ~/.ssh/config
chmod 644 ~/.ssh/config
Das ist allerdings ein kleines Problem, wenn ich die Datei bearbeiten muss, da ich die Berechtigungen und den Besitz der Datei ändern und sie dann wieder zurücksetzen muss. Aber das ist mein eigenes Problem, da ich den Ordner für die Konten freigeben möchte. Ich habe einige Shell-Skripte erstellt, um die Berechtigungen nur dann umzukehren, wenn ich den Befehl „sshfs“ oder „ssh“ über das Root-Benutzerkonto aufrufe.
Antwort4
Die anderen Antworten lösen das Problem nur, wenn eine falsche Berechtigung vorliegt. In meinem Fall war das Problem jedoch ein falscher Dateieigentümer. Sie können ausführen, ls -l ~/.ssh
um die Informationen zu Berechtigungen und Eigentümern anzuzeigen. Der Dateieigentümer ist in der 3. Spalte zu sehen. Wenn er falsch ist, führen Sie Folgendes aus:
chown <newOwner> <fileName>