Gssapi-keyex veya mikrofonlu gssapi kullanarak SSH kimlik doğrulaması (publickey'e izin verilmez)


15

Şirketim SSH ortak anahtar kimlik doğrulamasını devre dışı bıraktı, bu nedenle her defasında şifremi manuel olarak girmek zorundayım (değiştirmem gerekiyor /etc/ssh/sshd_config).

Ancak gssapi-keyex, gssapi-with-mickimlik doğrulama etkinleştirildi (lütfen aşağıdaki sshhata ayıklama çıktısına bakın).

Bu durumda otomatik girişi nasıl kullanabilirim? Doğrulama ve / veya kimlik doğrulaması
yapabilir miyim ?gssapi-keyexgssapi-with-mic

> 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).

1
Python'un kumaşı ssh otomasyonu ile uğraşmak için harika bir iş çıkarıyor.
Dan Garthwaite

Merhaba @DanGarthwaite Do kullandığınız Kumaş diğer uzak sunuculara el giriş için? Lütfen nasıl kullandığınızı açıklayabilir misiniz? Lütfen bir cevap verin. Şerefe
olibre

3
Bir Kerberos bölgesinde (veya Active Directory etki alanında) değilseniz, GSSAPI'nin sizin için yararlı olması olası değildir. Bununla birlikte, açık anahtar kimlik doğrulamasını devre dışı bırakmak oldukça saçma görünüyor.
Michael Hampton

1
@olibre Fabric, SSH üzerinden bir veya daha fazla sunucuda komut çalıştırmak için kullanılan bir yardımcı programdır. Bu komutlar genellikle Makefile gibi bir "fabfile" dosyasında düzenlenir. SSH'nin kaybolmasını sağlamak için son derece iyi bir iş çıkarır (kimlik doğrulaması yaptıktan sonra) ve SSH istemcileri ve sunucularının kontrolü kesintiye uğratma gibi birçok yolu işler. Hızlı bir eğitim mevcuttur: docs.fabfile.org/tr/1.7/tutorial.html
Dan Garthwaite

Lütfen @DanGarthwaite, fabbaşka bir makineye (şifre sormadan SSH gssapi) giriş yapacak bir dosya örneği verebilir ve bir kabuk açabilir misiniz? Bir cevap içinde sağlayabilirsiniz. (Beş dakika içinde, öğreticide bunu nasıl yapacağımı bulamadım). Şerefe;)
olibre

Yanıtlar:


19

Olabilir.

  • Standart giriş işleminin bir parçası olarak veya el ile ( kinitWindows için MIT Kerberos) müşteri sisteminizde müdürünüz için bir bilet alabilir misiniz ?
  • Sunucunun kerberos prensibi var mı yoksa verebiliyor musunuz? Şeklinde olmalıdır host/server.example.com@EXAMPLE.COM.
  • Is GSSAPIistemci üzerinde kimlik doğrulaması etkin?
  • Müşteriniz, sunucunun DNS TXT kaynak kaydı veya yerel eşleme ile hangi alana ait olduğunu biliyor mu?

Yukarıdakilerin tümüne "evet" derseniz, tebrikler, kullanabilirsiniz GSSAPIAuthentication.

  • Kurulumunuza bağlı olarak kimlik bilgisi temsilci seçme özelliğini de etkinleştirmeniz gerekebilir.

Test adımları:
(Varsayım: domain = example.com; realm = EXAMPLE.COM)

  1. kinit username@EXAMPLE.COM
    • İdeal olarak bu, standart giriş işleminiz tarafından uygun olanlara pam_krb5veya pam_sss(ile auth_provider = krb5) eklenerek ele alınır pam stack.
  2. kvno host/server.example.com@EXAMPLE.COM
    • Bu bir hata ayıklama adımıdır. sshEğer geçerli bir önbelleğe sahip ve bir konuştuğunuz takdirde otomatik olarak yapar sshdhangi desteklerin gssapi-with-micveya gssapi-keyex.
  3. dig _kerberos.example.com txt geri dönmeli "EXAMPLE.COM"
    • Alternatif olarak, eşleme as [domain_realm]bölümünde saklanabilir , ancak yöntem çok daha iyi ölçeklenir./etc/krb5.conf.example.com = EXAMPLE.COMdns
  4. ssh -o GSSAPIAuthentication=yes username@server.example.com
    • Sunucudaki yöneticinizinkinden farklı bir kullanıcı adına giriş yapmak için, ayrıntılarını buraya girmediğim eşlemeyi bilmeniz gerekir.

Selam. Size bir süre önce +1 verdim, ama aslında, dört noktanızı nasıl kontrol edeceğinizi bilmiyorum. (Yönetici değilim, sadece geliştiriciyim). Lütfen SSH bağlantısını kullanarak kontrol etmek için bir komut satırı sağlayabilir misiniz gssapiauthentication? Belki gssapiauthenticationLinux makinemde de kullanabilirim . (Bunun için kullanmalı kinitmıyım?) Şerefe;)
olibre

5

4 adımlı yöntem doğrudur (DNS'de daha zarif ve her Active Directory'de bulunan Kerberos SRV kayıtları da vardır). Bunu her zaman kullanıyorum ve çoğunlukla güvenlik ve kontrolle ilgili nedenlerden ötürü yukarıdaki pubkey yöntemlerini savunuyorum.

Bununla birlikte, bu sadece etkileşimli giriş sağlar, ancak iş istasyonunuzda bir bilet aldıktan sonra yarı etkileşimli olabilir. Kerberos bileti SSH temsilcisi gibi davranır; bir kez sahip olduğunuzda, yeni bağlantılar anında ve şifresizdir; bir süre ile de olsa.

Etkileşimli toplu oturum açma almak için, bir SSH anahtarının özel yarısı gibi, bir Kerberos hesabının parolasını içeren bir keytab dosyası almanız gerekir. Güvenlik önlemlerine göre; özellikle keytab şifrelenmediği veya bir şifre ile korunmadığı için.

Kullanıcılarıma kişisel hesapları için keytobs'larını sağlama konusunda oldukça isteksizim, ancak çeşitli toplu işler için minimum izinlere sahip hizmet hesaplarını agresif bir şekilde kullanıyorum, özellikle de kimlik bilgilerinin uzak sisteme devredilmesi kritik olduğunda, pubkey basitçe ' t ulaşmak.

Keytabs, Unix üzerinde ktutil veya Windows'ta KTPASS.EXE (AD Kerberos hizmetlerinden ikincisi) kullanılarak oluşturulabilir. Ktutil'in Heimdal ve MIT olmak üzere iki çeşidi olduğunu ve sözdizimlerinin farklı olduğunu unutmayın. İlgili sayfada sistem sayfasını okumak yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.