8 votos

Cómo prevenir ssh desde agregar que mi llave ssh-agent en Snow Leopard?

Recientemente he comenzado a usar Snow Leopard (después de usar Leopard para un par de años), y me di cuenta de que cuando me ssh usando una frase de contraseña-protegida de la clave privada ssh, se agrega automáticamente la clave ssh-agent. Pregunta 1: ¿Cómo puedo evitar ssh de comportarse de esta manera (haciendo la auto-add)?

Yo soy no buscan desactivar auto-lanzamiento de ssh-agent. En realidad yo uso, pero quiero claves para ser añadido manualmente (a través de ssh-add), no de forma automática.

Mi solución actual: He editado /System/Library/LaunchAgents/org.openbsd.ssh-agent.plist para que se ejecute con el argumento "-t 1" y que funciona bien. Pero me temo que algunos de actualización de software se revertirá. Pregunta 2: Si pongo el modificado plist en ~/Library/LaunchAgents/ el uno en /System ser ignorada por mi usuario? Esto califica como una solución estable.

5voto

Nip Puntos 362

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_passphraseen 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 mainen 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_keychainen ssh-add.c que termina como un mensaje para el agente que las llamadas process_add_from_keychain de process_messageen 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:

  1. ~/Library/LaunchAgents/
  2. /Library/LaunchAgents/
  3. /Network/Library/LaunchAgents/ (no presente en la mayoría de los sistemas)
  4. /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.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X