2012-05-10 30 views
12

Bazı otomatik oluşturma araçları için anahtarlıklar arama listeme bir .keychain dosyası eklemem gerekiyor. Şu anda security list-keychains komutu kullanıyorum:Arama listesine anahtarlık ekle?

list-keychains [-h] [-d user|system|common|dynamic] [-s [keychain...]] 
     Display or manipulate the keychain search list. 

Bu komut bakalım, tüm anahtarlık arama listesi, ancak ilk başta sadece başka anahtarlık eklemek için bir yol sağlamaz. Yani bir anahtarlık eklemek 2 adımlı bir süreç haline gelir.

  1. Çalıştır liste anahtarlıklar ve çıkış
  2. ayrıştırmak Sonra list-keychains -s ${existing_chains} ${new_keychain}

gibi bir şey bu işe yararken, bu aşırı karmaşık görünüyor ve bir yarış durumu tanıtır yapmak.

Ayrıca, arama listesine open my.keychain ekleyeceği anlaşılıyor, ancak komut dosyası veya başsız ortamlarda open gibi komutları kullanmaktan kaçınmaya eğilimliyim.

Arama listesine anahtarlık eklemenin daha basit veya daha iyi bir yolu var mı?

cevap

2

Hangi otomatik araçları kullanıyorsunuz? Tomcat altında Jenkins kullanarak iPhone için bina ile benzer bir sorun vardı. Kabuk betiğine anahtarlıklar eklemeyi denedim ama en iyi ihtimalle çok iyi oldu.

Sonuçta, derleme işlemimizi LaunchDomons yerine LaunchAgent'lar aracılığıyla çalışarak değiştirerek çalıştım. Bu şekilde yapı araçları kullanıcı bağlamında çalışır ve işler çok daha güvenilir hale gelir.

Bu sizin için bir olasılık mı? Eğer öyleyse, daha fazla detay sağlayabilirim.

+0

Temel olarak jenkins'de bir kabuk betiği için de var, ama yine de genel bir soru. – amrox

+0

Hangi konteynırda Jenkins çalışıyor? Tomcat? Ve bunun için başlatma betiği nedir? –

0

Bildiğim kadarıyla daha iyi bir yol yoktur DEĞİLDİR - belki create-keychain yapacak anlaşılmaktadır ancak ne istediğinizi:

security create-keychain -h

döner:

Usage: create-keychain [-P] [-p password] [keychains...] 
    -p Use "password" as the password for the keychains being created 
    -P Prompt the user for a password using the SecurityAgent 
Use of the -p option is insecure 
     Create keychains and add them to the search list. 
4

O 2017 var ve macos 10.12.4 security create-keychain hala arama listesine yeni bir anahtarlık eklemez. İşte benim adım ve geçici anahtarlıkları yok etmek için benim adım adım adım:

#!/bin/bash -e 

uuid="$(uuidgen)" 

echo "New Keychain name: $uuid" 

keychains=$(security list-keychains -d user) 

keychainNames=(); 

for keychain in $keychains 
do 
    basename=$(basename "$keychain") 
    keychainName=${basename::${#basename}-4} 
    keychainNames+=("$keychainName") 
done 

echo "User keychains on this machine: ${keychainNames[@]}"; 




read -p "Enter to create keychain" 
security -v create-keychain -p test123 $uuid 

read -p "Enter to add keychain to searchlist" 
security -v list-keychains -s "${keychainNames[@]}" $uuid 

read -p "Enter to unlock keychain" 
security -v unlock-keychain -p test123 $uuid 

read -p "Enter to import certificate" 
security -v import build-assets/certficate.p12 -k $uuid -P certificate_password 

read -p "Enter to delete keychain" 
security -v delete-keychain $uuid 
İlgili konular