Agrega Automáticamente Las Teclas
Hay tres maneras de claves SSH se agregan a ssh-agent en la Nieve
Leopardo.
- manualmente, con ssh-add,
- automáticamente, por ssh al suministrar una clave de la frase de paso a través
la interfaz gráfica de usuario de símbolo de sistema, y
- automáticamente, por ssh-agent cuando se inicia por primera vez.
Los dos últimos métodos son extensiones de Apple: no hay "automático"
adiciones con stock de OpenSSH. Todas las referencias a ssh, ssh-agent,
y ssh-add a continuación son para Apple Snow Leopard versiones menos
Yo prefijo el nombre del programa con el adjetivo de "stock".
Puede deshabilitar todos los de Apple llavero orientado SSH modificaciones
con un (indocumentados?) configuración de preferencias:
defaults write org.openbsd.openssh KeychainIntegration -bool false
Claves Agregan Automáticamente Por ssh
(Esta es la parte que me perdí en la anterior versión original de mi
responder ya que yo normalmente uso un "stock" de ssh.)
Siempre ssh intenta utilizar una frase de contraseña protegida de la clave SSH para
la autenticación en un host remoto, se emitirá un comando GUI para
la clave SSH de la contraseña. La clave también está cargado en el agente (si
la contraseña es correcta) o si no te marca la opción de "Recordar
contraseña en mi llavero" casilla de verificación.
Hay dos (indocumentados?) maneras de prevenir ssh a partir de la expedición
este comando GUI (y por lo tanto la adición de la clave SSH para el ssh-agent):
-
Una opción de preferencia:
defaults write org.openbsd.openssh AskPassGUI -bool false
-
Un
ssh_config
entrada (o -o
opción de ssh) que especifica AskPassGUI no
.
(ver keychain_read_passphrase
en
keychain.c
;
el oAskPassGUI
parámetro viene de la AskPassGUI
configuración de la configuración)
Cuando AskPassGUI
está desactivado, ssh le indicará en el normal
forma de la clave de la contraseña (es decir, a través de la tty).
También puede evitar automática agrega desde ssh mediante el uso de un "stock"
ssh (por ejemplo, OpenSSH compilado por
MacPorts,
Homebrew "duplicados" de
homebrew-alt, o
Fink).
Claves Agregan Automáticamente Por ssh-agent
Las claves ssh-agent agrega automáticamente son aquellos que tienen
su contraseña se almacena en un llavero.
Estos "recordar claves" se añaden automáticamente cuando un nuevo
ssh-agentse inicia.
No hay ninguna línea de comandos o la opción de configuración (aparte de
KeychainIntegration
, descrito anteriormente) para prevenir el ssh-agentde
la carga automática de la "recordar claves" (ver la llamada a
process_add_from_keychain
(definido en
keychain.c
) de main
en
ssh-agent.c
).
Si, sin embargo, usted puede hacer arreglos para bloquear el llaveros que la tienda de su
La clave SSH contraseña, puede hacer clic en Cancelar cuando ssh-agent pide
desbloquear el llavero(s) y obtener efectivamente ssh-agent para saltar
la adición de estos ", recordó teclas" cuando se inicia por primera vez.
Si no hay ssh-agent se ejecuta, el primer uso de sshse
probablemente desencadenaría launchd para iniciar un ssh-agent que se los carga a todos
el "recordar claves". Esto hace que parezca que el ssh es la carga de la
claves en el agente, pero en realidad es el propio agente que es
la carga de las teclas. Sólo lo hace automáticamente la primera vez que
se inicia.
El -k
opción de ssh-add proporciona un manual manera de agregar el
"recordar claves" (ver add_from_keychain
en
ssh-add.c
que termina como un mensaje para el agente que las llamadas
process_add_from_keychain
de process_message
en
ssh-agent.c
).
launchd de Configuración
Tienes razón en que una actualización del sistema, podría sobrescribir su modificación en el archivo en /System/Library/LaunchAgents/
. Siempre se debe evitar cambiar las cosas bajo /System/
; la mayoría de las cosas pueden ser (re)configurado sin hacer cambios. En este caso, parece que usted debe ser capaz de reemplazar el sistema por defecto launchd especificación del trabajo en función de cada usuario con un archivo en ~/Library/LaunchAgents/
.
Por lo que puedo decir1, las entradas se cargan en este orden de2:
~/Library/LaunchAgents/
/Library/LaunchAgents/
-
/Network/Library/LaunchAgents/
(no presente en la mayoría de los sistemas)
/System/Library/LaunchAgents/
No parece ser documentado, pero sólo el primer trabajo de configuración para cada Etiqueta (por ejemplo, org.openbsd.ssh-agent
) se mantendrá. Cualquier configuración de un directorio posterior con la misma Etiqueta como una configuración de un anterior directorio efectivamente es omitido.
1
Ver
NSStartSearchPathEnumeration
utilizado en launchctl.c
y se define en la
NSSystemDirectories.h
/NSSystemDirectories.c
.
2launchd también se ve en la LaunchDaemons/
directorios junto a los diversos LaunchAgents/
directorios para otros tipos de trabajos.