Mein Unternehmen hat die Authentifizierung mit öffentlichem SSH-Schlüssel deaktiviert, daher muss ich diese manuell eingeben jedes Mal mein Passwort (ich soll /etc/ssh/sshd_config
nicht ändern).
Jedoch gssapi-keyex
und gssapi-with-mic
Authentifizierungen sind aktiviert (siehe unten ssh
Debug-Ausgabe).
Wie kann ich in diesem Fall die automatische Anmeldung verwenden?
Kann ich gssapi-keyex
und / oder gssapi-with-mic
Authentifizierungen?
> ssh -v -o PreferredAuthentications=publickey hostxx.domainxx OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010 debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for * debug1: Connecting to hostxx.domainxx [11.22.33.44] port 22. debug1: Connection established. debug1: identity file /home/me/.ssh/identity type -1 debug1: identity file /home/me/.ssh/id_rsa type -1 debug1: identity file /home/me/.ssh/id_dsa type 2 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3 debug1: match: OpenSSH_5.3 pat OpenSSH* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_5.3 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP debug1: SSH2_MSG_KEX_DH_GEX_INIT sent debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY debug1: Host "hostxx.domainxx" is known and matches the RSA host key. debug1: Found key in /home/me/.ssh/known_hosts:2 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: gssapi-keyex,gssapi-with-mic,password debug1: No more authentication methods to try. Permission denied (gssapi-keyex,gssapi-with-mic,password).
Kommentare
- Python ‚ s Fabric leistet hervorragende Arbeit im Umgang mit der SSH-Automatisierung.
- Hi @ DanGarthwaite Verwenden Sie Fabric , um sich manuell bei anderen Remote-Servern anzumelden? Bitte können Sie erklären, wie Sie es verwenden. Bitte geben Sie eine Antwort. Prost
- Wenn Sie nicht ‚ t in einem Kerberos-Bereich (oder einer Active Directory-Domäne) sind, ist es unwahrscheinlich, dass GSSAPI für Sie nützlich ist. Das Deaktivieren der Authentifizierung mit öffentlichem Schlüssel erscheint jedoch ziemlich absurd.
- @olibre Fabric ist ein Dienstprogramm zum Ausführen von Befehlen auf einem oder mehreren Servern über SSH. Diese Befehle sind normalerweise in einem “ Fabfile “ wie einem Makefile organisiert. Es macht einen sehr guten Job, SSH verschwinden zu lassen (sobald Sie sich authentifiziert haben) und behandelt all die vielen Möglichkeiten, wie SSH-Clients und -Server dazu neigen, die Kontrolle zu unterbrechen. Ein kurzes Tutorial ist verfügbar: docs.fabfile.org/en/1.7/tutorial.html
- Bitte @DanGarthwaite, können Sie eine geben Beispiel einer
fab
-Datei, die sich bei einem anderen Computer anmeldet (SSH gssapi, ohne nach einem Kennwort zu fragen) und eine Shell öffnet? Sie können es innerhalb einer Antwort angeben. (In fünf Minuten habe ich im Tutorial nicht gefunden, wie das geht). Prost;)
Antwort
Vielleicht.
- Können Sie eine erhalten Ticket für Ihren Principal auf Ihrem Client-System entweder als Teil des Standard-Anmeldevorgangs oder manuell (
kinit
, MIT Kerberos für Windows)? - Hat der Server einen Kerberos-Principal oder können Sie ihm einen geben? Es sollte die Form
host/[email protected]
haben. - Ist die
GSSAPI
-Authentifizierung auf Ihrem Client aktiviert? - Weiß Ihr Client anhand des DNS-TXT-Ressourceneintrags oder der lokalen Zuordnung, zu welchem Bereich der Server gehört?
Wenn Sie zu all der oben genannten, dann herzlichen Glückwunsch, Sie können GSSAPIAuthentication
verwenden.
- Sie können Abhängig von Ihrem Setup muss auch die Delegierung von Anmeldeinformationen aktiviert werden.
Testschritte:
(Angenommen: domain = example.com; Realm = EXAMPLE.COM)
-
kinit [email protected]
- Idealerweise wird dies durch Ihren Standard-Anmeldevorgang erledigt, indem entweder
pam_krb5
oderpam_sss
(mitauth_provider = krb5
) in der entsprechendenpam stack
.
- Idealerweise wird dies durch Ihren Standard-Anmeldevorgang erledigt, indem entweder
-
kvno host/[email protected]
- Dies ist ein Debugging-Schritt.
ssh
führt dies automatisch aus, wenn Sie einen gültigen Cache haben und mit einemsshd
sprechen, dergssapi-with-mic
odergssapi-keyex
.
- Dies ist ein Debugging-Schritt.
-
dig _kerberos.example.com txt
sollte"EXAMPLE.COM"
- Alternativ könnte die Zuordnung im Abschnitt
[domain_realm]
von/etc/krb5.conf
als.example.com = EXAMPLE.COM
, aber diedns
-Methode lässt sich viel besser skalieren.
- Alternativ könnte die Zuordnung im Abschnitt
-
ssh -o GSSAPIAuthentication=yes [email protected]
- Um sich auf dem Server bei einem anderen Benutzernamen als dem Ihres Principals anzumelden, müssen Sie wissen, welche Details ich hier nicht erhalte.
Kommentare
- Hallo. Ich habe Ihnen vor einiger Zeit +1 gegeben, aber tatsächlich nicht Sie können Ihre vier Punkte überprüfen (ich bin kein Administrator, nur ein Entwickler). Bitte geben Sie eine Befehlszeile an, um die SSH-Verbindung zu überprüfen g
gssapiauthentication
? Vielleicht kann ich auchgssapiauthentication
auf meinem Linux-Computer verwenden. (sollte ich dafürkinit
verwenden?) Prost;)
Antwort
Die 4-Schritt-Methode ist korrekt (es gibt auch Kerberos SRV-Einträge in DNS, die noch eleganter sind und in jedem Active Directory vorhanden sind). Ich benutze dies die ganze Zeit und habe diese oben genannten Pubkey-Methoden aus hauptsächlich sicherheits- und kontrollbezogenen Gründen befürwortet.
Dies bedeutet jedoch nur eine interaktive Anmeldung, obwohl diese quasi interaktiv sein kann, sobald Sie ein Ticket auf Ihrer Workstation erhalten haben.Das Kerberos-Ticket verhält sich ähnlich wie der SSH-Agent. Sobald Sie es haben, sind neue Verbindungen sofort und ohne Passwort möglich. wenn auch zeitlich begrenzt.
Um eine interaktive Stapelanmeldung zu erhalten, benötigen Sie eine Keytab-Datei, die im Wesentlichen das Kennwort für ein Kerberos-Konto enthält, ähnlich wie die private Hälfte eines SSH-Schlüssels. Entsprechend gelten Sicherheitsvorkehrungen; zumal das Keytab nicht verschlüsselt oder mit einem Passwort geschützt ist.
Ich möchte meinen Benutzern ihre Keytabs für ihre persönlichen Konten nur ungern zur Verfügung stellen, verwende jedoch aggressiv Dienstkonten mit minimalen Berechtigungen für verschiedene Stapeljobs, insbesondere wenn es wichtig ist, dass Anmeldeinformationen an die Fernbedienung delegiert werden System, etwas Pubkey kann einfach nicht erreichen.
Keytabs können mit ktutil unter Unix oder KTPASS.EXE unter Windows (letzteres von AD Kerberos-Diensten) erstellt werden. Beachten Sie, dass ktutil in zwei Varianten vorhanden ist, Heimdal und MIT, und dass sich ihre Syntax unterscheidet. Das Lesen der Manpage auf einem relevanten System hilft.