Mon entreprise a désactivé lauthentification par clé publique SSH, je dois donc saisir manuellement à chaque fois mon mot de passe (je ne suis pas censé changer /etc/ssh/sshd_config
).
Cependant gssapi-keyex
et gssapi-with-mic
les authentifications sont activées (voir ci-dessous ssh
sortie de débogage).
Comment utiliser la connexion automatique dans ce cas?
Puis-je exploiter gssapi-keyex
et / ou gssapi-with-mic
authentifications?
> 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).
Commentaires
Réponse
Peut-être.
- Pouvez-vous obtenir un ticket pour votre mandant sur votre système client dans le cadre du processus de connexion standard ou manuellement (
kinit
, MIT Kerberos pour Windows)? - Le serveur a-t-il un principal Kerberos ou pouvez-vous lui en donner un? Elle doit être de la forme
host/[email protected]
. - Lauthentification
GSSAPI
est-elle activée sur votre client? - Votre client sait-il à quel domaine appartient le serveur soit par enregistrement de ressource DNS TXT ou par mappage local?
Si vous avez répondu « oui » à all de ce qui précède, alors félicitations, vous pouvez utiliser GSSAPIAuthentication
.
- Vous pouvez doivent également activer la délégation des informations didentification, en fonction de votre configuration.
Étapes du test:
(En supposant: domain = example.com; realm = EXAMPLE.COM)
-
kinit [email protected]
- Dans lidéal, cela est géré par votre processus de connexion standard en incluant soit
pam_krb5
soitpam_sss
(avecauth_provider = krb5
) dans lepam stack
approprié.
- Dans lidéal, cela est géré par votre processus de connexion standard en incluant soit
-
kvno host/[email protected]
- Il sagit dune étape de débogage.
ssh
le fait automatiquement si vous avez un cache valide et que vous parlez à unsshd
qui prend en chargegssapi-with-mic
ougssapi-keyex
.
- Il sagit dune étape de débogage.
-
dig _kerberos.example.com txt
doit renvoyer"EXAMPLE.COM"
- Sinon, le mappage peut être stocké dans la section
[domain_realm]
de/etc/krb5.conf
comme.example.com = EXAMPLE.COM
, mais la méthodedns
évolue beaucoup mieux.
- Sinon, le mappage peut être stocké dans la section
-
ssh -o GSSAPIAuthentication=yes [email protected]
- Pour vous connecter à un nom dutilisateur autre que celui de votre mandant sur le serveur, il faudra savoir le mapper les détails dont je ne rentre pas ici.
Commentaires
- Bonjour. Je vous ai donné +1 il y a quelque temps, mais en fait, je ne le fais pas savoir comment vérifier vos quatre points. (Je ne suis pas un administrateur, juste un développeur). Veuillez fournir une ligne de commande pour vérifier la connexion SSH en utilisant g
gssapiauthentication
? Peut-être que je peux aussi utilisergssapiauthentication
sur ma machine Linux. (devrais-je utiliserkinit
pour cela?) Cheers;)
Answer
La méthode en 4 étapes est correcte (il existe également des enregistrements Kerberos SRV dans DNS qui sont encore plus élégants et sont présents dans chaque Active Directory). Jutilise cela tout le temps et je préconise cela ci-dessus pour des méthodes pubkey, principalement pour des raisons de sécurité et de contrôle.
Cela dit, cela ne donne quune connexion interactive, même si cela peut être quasi-interactif une fois que vous avez obtenu un ticket sur votre poste de travail.Le ticket Kerberos agit un peu comme lagent SSH; une fois que vous lavez, les nouvelles connexions sont instantanées et sans mot de passe; mais avec une limite de temps.
Pour obtenir une connexion par lots interactive, vous devez obtenir un fichier keytab, un fichier qui contient essentiellement le mot de passe dun compte Kerberos, un peu comme la moitié privée dune clé SSH. Selon les précautions de sécurité sappliquent; dautant plus que le keytab nest ni chiffré ni protégé par un mot de passe.
Je suis assez réticent à fournir à mes utilisateurs leurs keytabs pour leurs comptes personnels, mais jutilise de manière agressive des comptes de service avec des autorisations minimales pour divers travaux par lots, en particulier lorsquil est essentiel que les informations didentification soient déléguées à la télécommande système, quelque chose de pubkey ne peut tout simplement pas réaliser.
Les keytabs peuvent être créés en utilisant ktutil sous Unix ou KTPASS.EXE sous Windows (ce dernier à partir des services AD Kerberos). Notez que ktutil existe en deux versions, Heimdal et MIT, et leur syntaxe diffère. La lecture de la page de manuel sur un système pertinent est utile.
fab
qui se connecterait à une autre machine (SSH gssapi sans demander de mot de passe) et ouvrirait un shell? Vous pouvez le fournir dans une réponse. (En cinq minutes, je nai pas trouvé dans le tutoriel comment faire cela). Cheers;)