Anahtarlığa uzaktan komut satırından nasıl erişebilirim?


23

Anahtarlığımda çeşitli şifreleri (örneğin uzak e-posta sunucuları için) saklıyorum. Komut satırından, yerel olarak oturum açtığımda, aşağıdakileri aracılığıyla alabilirim:

security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<dumps keychain attributes, including password>

Ancak, uzaktan çalıştırıldığında sonuçlar elde edilemez (kutuya başka bir yerden girerek):

security unlock-keychain ~/Library/Keychains/login.keychain
<enter password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com
<dumps keychain attributes, not including password>
security find-internet-password -s smtp.gmail.com -a foo@gmail.com -g
<nothing printed, to stdout or stderr>

Ayrıca, son komutun dönüş değeri (-g kullanarak) 36'dır.

setYerel bir girişten çıktısını uzak bıraktım ve uzak olanla karşılaştırdım ve eksik ortam değişkenleri:

Apple_PubSub_Socket_Render
GPG_AGENT_INFO
SECURITYSESSIONID
TERM_PROGRAM
TERM_PROGRAM_VERSION
TERM_SESSION_ID
XPC_FLAGS
XPC_SERVICE_NAME

Neyi kaçırıyorum? Ben var mı SSH_AUTH_SOCK(dönen geçerli bir değere ayarlanır ssh-agent).


Yanıtlar:


11

Bunu araştırmak için çoğalttığımda, anahtarlığımın “Erişime izin vermeden önce onayla” olarak yapılandırıldığını fark ettim. Bu nedenle, find-internet-passwordyerel olarak -gbayrakla yaptığımda , "smtp. gmail.com ”anahtarlığınızda. “İzin Ver” seçeneğini tıklarsam çalışır, “Reddet” düğmesini tıklatırsam sshbir geri dönüş kodu ile duruma benzer şekilde başarısız olur 51. Erişim onayı iletişim kutusu

Komutu uzaktan denememe başladığımda ssh, -gderhal başarısızlık ile sonuçlandığını 36bildirirsiniz.

Bunun olduğundan, içeri girdiğinizde ssh, sistemin securitykomutun bu bilgilere erişmesine izin vermek istediğinizi onaylamanıza olanak tanıyan bir iletişim kutusu açmasının mümkün olmadığından şüpheleniyorum .

sshKomutu yerel olarak çalıştırırken ilk önce “Her Zaman İzin Ver” seçeneğini tıklatarak bağlandığında komutun çalışmasını sağlayabildim . Bu, Anahtar Zincirindeki izinleri güncelleştirir, böylece artık uzaktan çalışmasına izin veren iletişim kutusuna (yerel olarak bile) yanıt vermeme gerek kalmaz.

Bunun sizin için tamamen yardımcı olup olmayacağını bilmiyorum, ancak, securityprograma uzaktan erişmek isteyebileceğiniz herhangi bir anahtarlık ürününe önceden erişim izni vermeniz gerektiği anlamına geldiğini düşünüyorum . Bunu yapmak için bir senaryo yazmak mümkün olabilir?

Bunu manuel olarak deniyorsanız ve daha sonra bu erişimi iptal etmek istiyorsanız, Anahtarlık Erişim'de etkilenen öğeye gidebilir, Bilgi Al'ı seçip Erişim Kontrolü sekmesine bakabilirsiniz . Bunun için securitysilebileceğiniz bir giriş göreceksiniz :Erişim Kontrolü İletişim Kutusu


Aynı şeyi yaptım - "her zaman erişime izin ver" listesine "güvenlik" komutunu ekledim (ayrıca yerel olarak komut verirken beliren açılır pencerede "Her zaman izin ver" seçeneğini tıklatarak da yapılır), ancak yine de yapamıyorum anahtarlık öğesine daha sonra uzaktan erişin. Değiştirilmesi gereken bir yerde başka bir ayar olmalı, ama bulamıyorum.
Eter

1
ahahaha - Bu does geçerli olması için Keychain'de ayarlarını değiştirdikten sonra yeni bir oturum ile oturum aslında çalışır, ancak birisinin ihtiyacı. Yaşasın! (Erişim ayrıcalıklarını uzaktan nasıl değiştireceğimi öğrenirsem, bu soruya bir cevap ekleyeceğim, ancak daha sonra uzaktan kullanım için yerel olarak işleri önceden yerel olarak ayarlamak şu an için kabul edilebilir.)
Ether

2
Ayrıca not edin - security unlock-keychain ~/Library/Keychains/login.keychainAnahtarlık kullanmaya çalıştığınız uzak oturumda da çalışmanız gerekir. Bu, şifrenizi sorar, bu nedenle bir komut dosyasında yapamazsınız. Bunu parola olmadan elde etmenin yolları olabilir, ancak bu, bu sorunun kapsamı dışındadır :)
Ether

unlock-keychain için şifreyi komut satırına girip giremeyeceğimi bilen var mı?
tofutim

1
@Diğer anahtarlık varsayılan yoldaysa, /Users/[user]/Library/Keychains/tam yolu atlayabilir ve yoluna devam edebilirsiniz login.keychain.
Solgar

5

security -i unlock-keychain

MacOS 10.13.4 Yüksek Sierra da benim için çalışıyor.

Karthick'in çözümünü araştırdıktan sonra bunu buldum. -İ komutu etkileşimli kılar ve terminalde sizden şifrenizi ister.


3

Güvenlik anahtarlığı varsayılan konumda olduğu sürece, kilidini açmak için aşağıdaki komutu kullanabilirsiniz. Bir şifre sormuyor. Uzaktan çalıştı.

security unlock-keychain -p "enter password"


Farklı sormaya hoş geldiniz! En iyi cevapları bulmaya çalışıyoruz ve bu cevaplar neden en iyi olduklarına dair destekleyici bilgiler sağlayacak . Cevaplar kendi kendine yeten olmalıdır, bu yüzden neden verdiğiniz yanıtın sorunu çözeceğini ya da diğerlerinden daha iyi olduğunu düşündüğünüzü açıklayın. Bağlantıları destekleyici bilgi olarak sağlamak, OP'ye ve diğerlerine de kendileri için ek bilgi bulmanıza yardımcı olabilir. Bkz Cevap Nasıl bir kalite cevap vermek için nasıl. - Şu kaynaktan
fsb
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.