Soluzione 1:
Sui computer Windows che fanno parte di un dominio Active Directory, gli utenti ricevono il ticket di concessione ticket Kerberos quando accedono a Windows e PuTTY è in grado di utilizzarlo per l'autenticazione se l'autenticazione GSSAPI è abilitata in PuTTY Configuration Connection|SSH|Auth|GSSAPI (e altri metodi di autenticazione che tenta prima di GSSAPI, come la chiave pubblica tramite Pageant, non sono configurati o disabilitati in Connection|SSH|Auth).
[Se hai bisogno anche della delega del ticket (ad esempio, per montare i file system kerberizzati sul server dopo l'accesso), assicurati che la delega GSSAPI sia abilitata anche in PuTTY, e i server a cui accedi sono contrassegnati in Active Directory nella scheda Delega come "Considera attendibile questo computer per la delega a qualsiasi servizio (solo Kerberos) ", che non sono per impostazione predefinita. Quest'ultima impostazione di attendibilità in AD è stranamente necessaria solo per il funzionamento della delega da client Windows come PuTTY; non è necessaria per i client Linux "ssh -K".]
Sui computer Windows autogestiti (personali) che non fanno parte di un dominio Active Directory, puoi comunque utilizzare l'autenticazione Kerberos/GSSAPI (e la delega del ticket) tramite PuTTY, ma devi ottenere tu stesso il ticket. Sfortunatamente, Windows 7 non viene installato con alcun equivalente del programma kinit (per richiedere manualmente un ticket) e PuTTY non richiede nemmeno la password Kerberos se non si dispone di un ticket. Pertanto, devi installare il pacchetto MIT Kerberos per Windows, che include sia i soliti strumenti della riga di comando kinit/klist/kdestroy, sia un accurato strumento GUI "MIT Kerberos Ticket Manager". Usa quelli per ottenere il tuo biglietto, quindi PuTTY utilizzerà automaticamente la libreria MIT GSSAPI invece di quella Microsoft SSPI e dovrebbe funzionare tutto. Se il "MIT Kerberos Ticket Manager" è in esecuzione, ti chiederà automaticamente la tua password Kerberos quando PuTTY necessita di un ticket, quindi è una buona idea collegarlo dalla cartella Startup.
Soluzione 2:
Prima ricontrolla che l'output di klist sulla casella di Windows che esegue PuTTY mostri un TGT valido. Quindi, nella configurazione per la tua sessione PuTTY, assicurati di Attempt GSSAPI authentication è abilitato in Connection - SSH - Auth - GSSAPI
. Infine, assicurati che sia configurato per accedere automaticamente con il tuo nome utente in Connection - Data
. Puoi specificare esplicitamente il nome utente o selezionare il pulsante di opzione Usa nome utente di sistema .
Storicamente, è tutto ciò che dovevo fare per far funzionare l'accesso SSH senza password tramite Kerberos.
Soluzione 3:
Il problema era nella configurazione di Windows Kerberos. Penso che la nostra Active Directory sia configurata in modo strano, non so davvero di non essere un amministratore di Windows.
Ma ho risolto il problema configurando manualmente Kerberos utilizzando ksetup nella CLI di Windows 7.
Dopo un riavvio sulla mia postazione di lavoro remota non sono riuscito ad accedere al mio PC. Questo perché nella configurazione originale la porzione TLD del mio dominio realm era sempre assente (dominio\utente) ma dopo averla configurata manualmente ho dovuto cambiare il mio dominio di accesso per riflettere il nome completo del dominio realm (dominio.TLD\utente) e Sono riuscito ad accedere al mio PC Windows, anche se ora sembra che ci voglia più tempo per l'autenticazione.
Prima delle modifiche l'output di ksetup mostrava solo il mio regno predefinito, ed era in minuscolo.
Ho usato " nslookup -type=SRV _kerberos._tcp.domain.TLD " per ottenere tutti i server kdc per il mio realm.
Non ho impostato alcun flag.
Ho impostato mappato il mio nome utente " ksetup /mapuser [email protected] user "
Risorse che ho usato:https://wiki.ncsa.illinois.edu/display/ITS/Windows+7+Kerberos+Login+using+External+Kerberos+KDC
https://www.cgl.ucsf.edu/Security/CGLAUTH/CGLAUTH.html
Se qualcuno ha qualche suggerimento che posso dare agli amministratori di Windows su come risolvere il problema (è rotto?) lo passerò.