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

  • Python ‘ s fabric fait un excellent travail pour gérer lautomatisation ssh.
  • Salut @ DanGarthwaite Utilisez-vous Fabric pour vous connecter manuellement à dautres serveurs distants? Pouvez-vous expliquer comment vous lutilisez. Veuillez fournir une réponse. Bravo
  • Si vous nêtes ‘ que dans un domaine Kerberos (ou un domaine Active Directory), il est peu probable que GSSAPI vous soit utile. Cela dit, désactiver lauthentification par clé publique semble assez absurde.
  • @olibre Fabric est un utilitaire pour exécuter des commandes sur un ou plusieurs serveurs via SSH. Ces commandes sont généralement organisées dans un  » fabfile « , comme un Makefile. Il fait un très bon travail pour faire disparaître SSH (une fois que vous vous authentifiez) et gère toutes les nombreuses façons dont les clients et les serveurs SSH ont tendance à interrompre le contrôle. Un tutoriel rapide est disponible: docs.fabfile.org/en/1.7/tutorial.html
  • Veuillez @DanGarthwaite, pourriez-vous donner un exemple dun fichier 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;)

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)

  1. kinit [email protected]
    • Dans lidéal, cela est géré par votre processus de connexion standard en incluant soit pam_krb5 soit pam_sss (avec auth_provider = krb5) dans le pam stack approprié.
  2. 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 à un sshd qui prend en charge gssapi-with-mic ou gssapi-keyex.
  3. 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éthode dns évolue beaucoup mieux.
  4. 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 utiliser gssapiauthentication sur ma machine Linux. (devrais-je utiliser kinit 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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *