Min virksomhed har deaktiveret SSH-godkendelse af offentlig nøgle, derfor skal jeg manuelt indtaste hver gang min adgangskode (jeg formoder ikke at ændre /etc/ssh/sshd_config
).
Dog gssapi-keyex
og gssapi-with-mic
godkendelser er aktiveret (se nedenfor ssh
debug output).
Hvordan kunne jeg bruge automatisk login i dette tilfælde?
Kan jeg udnytte gssapi-keyex
og / eller gssapi-with-mic
godkendelser?
> 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
Måske.
- Kan du få en billet til din hovedstol på dit klientsystem enten som en del af standard loginprocessen eller manuelt (
kinit
, MIT Kerberos til Windows)? - Har serveren en kerberos-hovedstol, eller kan du give den en? Den skal have formen
host/[email protected]
. - Er
GSSAPI
godkendelse aktiveret på din klient? - Ved din klient, hvilket område serveren tilhører, enten ved hjælp af DNS TXT-ressourcepost eller lokal kortlægning?
Hvis du sagde “ja” til alle af ovenstående, så tillykke, du kan bruge GSSAPIAuthentication
.
- Du må skal også aktivere legitimationsdelegering, afhængigt af din opsætning.
Testtrin:
(Antages: domæne = eksempel.com; realm = EXAMPLE.COM)
-
kinit [email protected]
- Ideelt set håndteres dette ved din standard loginproces ved at inkludere enten
pam_krb5
ellerpam_sss
(medauth_provider = krb5
) i det relevantepam stack
.
- Ideelt set håndteres dette ved din standard loginproces ved at inkludere enten
-
kvno host/[email protected]
- Dette er et fejlfindingstrin.
ssh
gør dette automatisk, hvis du har en gyldig cache, og du taler til ensshd
, som understøttergssapi-with-mic
ellergssapi-keyex
.
- Dette er et fejlfindingstrin.
-
dig _kerberos.example.com txt
skal returnere"EXAMPLE.COM"
- Alternativt kunne kortlægningen gemmes i
[domain_realm]
sektionen i/etc/krb5.conf
som.example.com = EXAMPLE.COM
, mendns
-metoden skaleres meget bedre.
- Alternativt kunne kortlægningen gemmes i
-
ssh -o GSSAPIAuthentication=yes [email protected]
- For at logge ind på et andet brugernavn end det, som din hovedperson har på serveren, skal det kende til at kortlægge de detaljer, som jeg ikke kommer ind på her.
Kommentarer
- Hej. Jeg har givet dig +1 for nogen tid siden, men faktisk gør jeg ikke ved, hvordan du kontrollerer dine fire punkter. (Jeg er ikke administrator, bare en udvikler). Kan du give en kommandolinje til at kontrollere SSH-forbindelsen usin g
gssapiauthentication
? Måske kan jeg også brugegssapiauthentication
på min Linux-maskine. (skal jeg brugekinit
til det?) Skål;)
Svar
4-trinsmetoden er korrekt (der er også Kerberos SRV-poster i DNS, der er endnu mere elegante og findes i alle Active Directory). Jeg bruger dette hele tiden og har anbefalet dette ovenfor pubkey-metoder af mest sikkerheds- og kontrolrelaterede årsager.
Når det er sagt, giver dette kun interaktivt login, selvom det kan være kvasi-interaktivt, når du først har fået en billet på din arbejdsstation.Kerberos-billetten fungerer ligesom SSH-agenten; når du har det, er nye forbindelser øjeblikkelig og adgangskodefri; omend med en tidsfrist.
For at få interaktivt batch-login skal du hente en keytab-fil, en fil, der i det væsentlige indeholder adgangskoden til en Kerberos-konto, ligesom den private halvdel af en SSH-nøgle. I henhold til sikkerhedsforanstaltninger gælder; især da tastaturfanen ikke er krypteret eller beskyttet med en adgangskode.
Jeg er meget tilbageholdende med at give mine brugere deres tastaturer til deres personlige konti, men bruger aggressivt servicekonti med minimale tilladelser til forskellige batchjob, især hvor det er kritisk, at legitimationsoplysninger delegeres til fjernbetjeningen system, kan noget pubkey simpelthen ikke opnå.
Keytabs kan oprettes ved hjælp af ktutil på Unix eller KTPASS.EXE på Windows (sidstnævnte fra AD Kerberos-tjenester). Bemærk, at ktutil findes i to varianter, Heimdal og MIT, og deres syntaks er forskellig. Det hjælper at læse hjemmesiden på et relevant system.
fab
fil, der logger ind på en anden maskine (SSH gssapi uden at bede om en adgangskode) og åbner en shell? Du kan give det inden for et svar. (På fem minutter fandt jeg ikke i vejledningen, hvordan man gør det). Skål;)