usar solicita restablecer quitar protectedcloudkeysyncing olvide macbook mac locales llavero eliminar elementos desbloquear contraseƱa cambiar macos terminal keychain codesign

macos - solicita - Eliminar clave privada de Mac OS X llavero usando Terminal



quitar contraseƱa macbook air (2)

Hay varios llaveros en su sistema:

sudo security list-keychains "/Users/JonDoe/Library/Keychains/login.keychain" "/Library/Keychains/System.keychain"

Creo que lo importó en el llavero del sistema: primero haga una copia de seguridad de sus certificados de raíz del sistema antes de realizar cualquier cambio (o cualquier otro llavero que elija):

cd /System/Library/Keychains/ sudo cp SystemRootCertificates.keychain SystemRootCertificates.keychain.old

Listar todos los llaveros / todos los certificados en su llavero:

ls -l /System/Library/Keychains/ sudo security dump-keychain /System/Library/Keychains/SystemRootCertificates.keychain

Con el segundo comando se muestra cada certificado del llavero. Identifique el certificado que desea eliminar. Luego retire el certificado con el siguiente comando:

sudo security delete-certificate -Z <SHA-1 hash of certificate> /System/Library/Keychains/SystemRootCertificates.keychain **alternative:** sudo security delete-certificate -c <common name of certificate> /System/Library/Keychains/SystemRootCertificates.keychain

Eso es todo. Ahora puedes importar tu certificado de nuevo. En caso de error, puede restaurar su llavero con el siguiente comando:

sudo security import certificate_files_backup -k /System/Library/Keychains/SystemRootCertificates.keychain -t cert

He importado una identidad de desarrollador (certificado + clave privada) para el desarrollo de iOS a un llavero usando la aplicación de terminal "seguridad" con el comando

security import identity.p12 -k <keychain> -P <passphrase>

Esto importa los dos elementos incluidos en el archivo p12, el certificado y la clave privada, en el llavero dado. Olvidé especificar -T /usr/bin/codesign , sin embargo, lo que agrega la aplicación codesign a la lista de acceso de la clave privada. He intentado agregar la aplicación codesign a la lista de acceso sin éxito:

  • He intentado volver a importar la identidad con el parámetro agregado pero eso no parece cambiar la lista de acceso de la clave privada.
  • También he intentado eliminar el certificado del llavero usando el certificado de security delete-certificate y la reimportación. Esto no cambia la lista de acceso de la clave privada.

Dado que solo tengo acceso ssh a la máquina, usar la aplicación GUI de Keychain no funcionará. Por lo tanto, estoy buscando una forma de eliminar la clave privada del llavero (para poder reimportar la identidad más adelante). He revisado la página de manual de la herramienta de security pero no encontré un medio para eliminar una clave privada.

¿Hay alguna forma de eliminar una clave privada de un llavero usando solo los comandos del Terminal (ya que solo tengo acceso ssh a la máquina en cuestión)?


Puede eliminar el certificado y la clave ejecutando un comando en el terminal:

sudo security delete-identity -Z "SHA-1"

o

sudo security delete-identity -c "CommonName"

Al principio pensé que solo eliminaba la clave, pero en realidad también eliminaba el certificado (solo necesita cerrar el llavero por completo y volver a abrirlo para ver los cambios, si lo está verificando con la GUI).

De la man security :

delete-identity [-h] [-c name] [-Z hash] [-t] [keychain...] Delete a certificate and its private key from a keychain. If no keychain arguments are provided, the default search list is used. -c name Specify certificate to delete by its common name -Z hash Specify certificate to delete by its SHA-1 hash -t Also delete user trust settings for this identity certificate

Es posible que necesites desbloquear el llavero primero (desde man security ):

unlock-keychain [-hu] [-p password] [keychain] Unlock keychain, or the default keychain if none is specified.