Mitt företag har inaktiverat SSH-autentisering av offentlig nyckel, därför måste jag ange manuellt varje gång mitt lösenord (jag antar inte att ändra /etc/ssh/sshd_config
).
Men gssapi-keyex
och gssapi-with-mic
autentiseringar är aktiverade (se nedan ssh
felsökningsutdata).
Hur kan jag använda automatisk inloggning i det här fallet?
Kan jag utnyttja gssapi-keyex
och / eller gssapi-with-mic
autentiseringar?
> 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).
Kommentarer
Svar
Kanske.
- Kan du få en biljett till din huvudman på ditt klientsystem antingen som en del av standardinloggningsprocessen eller manuellt (
kinit
, MIT Kerberos för Windows)? - Har servern en kerberos-princip eller kan du ge den en? Det ska ha formen
host/[email protected]
. - Är
GSSAPI
autentisering aktiverad på din klient? - Vet din klient till vilket område servern tillhör antingen genom DNS TXT-resurspost eller lokal mappning?
Om du sa ”ja” till alla av ovanstående, så grattis, du kan använda GSSAPIAuthentication
.
- Du får måste också aktivera legitimationsdelegering, beroende på din inställning.
Teststeg:
(antar: domän = exempel.com; realm = EXAMPLE.COM)
-
kinit [email protected]
- Helst hanteras detta genom din standardinloggningsprocess genom att inkludera antingen
pam_krb5
ellerpam_sss
(medauth_provider = krb5
) i lämpligtpam stack
.
- Helst hanteras detta genom din standardinloggningsprocess genom att inkludera antingen
-
kvno host/[email protected]
- Detta är ett felsökningssteg.
ssh
gör detta automatiskt om du har en giltig cache och du pratar med ensshd
som stödergssapi-with-mic
ellergssapi-keyex
.
- Detta är ett felsökningssteg.
-
dig _kerberos.example.com txt
ska returnera"EXAMPLE.COM"
- Alternativt kan kartläggningen lagras i
[domain_realm]
i/etc/krb5.conf
som.example.com = EXAMPLE.COM
, mendns
-metoden skalas mycket bättre.
- Alternativt kan kartläggningen lagras i
-
ssh -o GSSAPIAuthentication=yes [email protected]
- För att logga in på ett annat användarnamn än ditt huvud på servern måste du kunna för att kartlägga de detaljer som jag inte kommer in här.
Kommentarer
- Hej. Jag har gett dig +1 för en tid sedan, men det gör jag faktiskt inte vet hur du kontrollerar dina fyra poäng. (Jag är inte en administratör, bara en utvecklare). Kan du ge en kommandorad för att kontrollera SSH-anslutningen i g
gssapiauthentication
? Kanske kan jag också användagssapiauthentication
på min Linux-maskin. (ska jag användakinit
för det?) Skål;)
Svar
4-stegsmetoden är korrekt (det finns också Kerberos SRV-poster i DNS som är ännu mer eleganta och finns i alla Active Directory). Jag använder det hela tiden och har förespråkat ovanstående pubkey-metoder av mestadels säkerhets- och kontrollrelaterade skäl.
Som sagt, detta ger bara interaktiv inloggning, även om det kan vara kvasi-interaktivt när du har fått en biljett på din arbetsstation.Kerberos-biljetten fungerar som SSH-agenten; när du väl har det är nya anslutningar direkt och lösenordsfria. om än med en tidsgräns.
För att få interaktiv batch-inloggning måste du få en keytab-fil, en fil som i huvudsak innehåller lösenordet för ett Kerberos-konto, ungefär som den privata halvan av en SSH-nyckel. Enligt säkerhetsåtgärder gäller; speciellt eftersom knappsatsen inte är krypterad eller skyddad med ett lösenord.
Jag är ganska ovillig att förse mina användare med sina tangentbord för sina personliga konton, men använder aggressivt servicekonton med minimala behörigheter för olika batchjobb, särskilt där det är viktigt att referenser delegeras till fjärrkontrollen system, något pubkey kan helt enkelt inte uppnå.
Keytabs kan skapas med ktutil på Unix eller KTPASS.EXE i Windows (det senare från AD Kerberos-tjänster). Observera att ktutil finns i två smaker, Heimdal och MIT, och deras syntax skiljer sig åt. Att läsa manpage på ett relevant system hjälper.
fab
-fil som skulle logga in på en annan dator (SSH gssapi utan att be om ett lösenord) och öppna ett skal? Du kan ge det inom ett svar. (På fem minuter hittade jag inte i handledningen hur man gör det). Skål;)