Mac OS X 10.6 VPN Passwort speichern

Seit 10.6 nutze ich die in Mac OS X integrierte VPN-Lösung um mich mit dem WLAN meiner Uni zu verbinden. Mit dem Cisco VPN Client konnte ich es damals noch mit einem Trick umgehen jedes mal das Passwort eingeben zu müssen. Jetzt habe ich auch eine Möglichkeit für den nativen Client gefunden.

Das Script basiert in Teilen auf Code von Corey Gilmore

Es handelt sich um ein AppleScript, welches man nur in den eingebauten „Scripteditor“ von Mac OS X kopieren muss. Es gilt natürlich bezüglich gespeicherter Passwörter, was ich hier schon gesagt hab und das was Corey in seinem Artikel auch schreibt:

Disclaimer

This is not endorsed or recommended by Apple, Cisco or RSA, and is quite possibly in violation of your corporate policies, especially if you store your PIN in the file.

Die Variablen „thePassword“ und „Uni VPN“ muss man sich natürlich noch individuell anpassen. Anschließend als Skript oder Programm speichern und z.b. ins Dock ziehen. Fertig!

Verbindet man das ganze noch mit SleepWatcher so wie hier kann man sich sogar automatisch beim aufwachen aus dem Ruhezustand verbinden, fast als wäre man im heimischen WLAN.

Achtung bei nicht deutsch lokalisiertem OS muss man „theText“ durch den entsprechenden Text des Passwortdialoges ersetzen (Der der im Screenshot zu sehen ist).

[codesyntax lang=“applescript“ blockstate=“collapsed“]

set theApp to "UserNotificationCenter" -- shouldn't have to change this
set theText to "VPN-Verbindung" -- static text to search for in the VPN dialog, likely locale specific
set theVpn to "Uni VPN"
set thePassword to "12345"
--VPN-Verbindung herstellen
tell application "System Events"
	tell current location of network preferences
		set VPNservice to service theVpn
		if exists VPNservice then connect VPNservice
	end tell
end tell
--Passworteingabefenster finden
delay 0.2
repeat with x from 1 to 20
	log "vc loop " & x
	delay 0.1
	set winNum to find_window_by_static_text(theApp, theText)
	log "winNum is: " & winNum
	if winNum is not null then
		exit repeat
	end if
end repeat
--Passwort eingeben
if winNum is null then
	log "Could not find the VPN Connection window"
	return null
end if
tell application theApp to activate
tell application "System Events"
	perform action "AXRaise" of item winNum of (get every window of application process theApp)
	keystroke thePassword
	key code 36
end tell

--Code from:
------------------------------------------------
-- Automated token generation and VPN logins
-- Copyright 2010, Corey Gilmore
-- http://coreygilmore.com/
-- Last Modified: 2010-02-04
------------------------------------------------
-- Find a window containing specific static text, in a given application
on find_window_by_static_text(appname, staticText)
	log "Searching " & appname & " for " & staticText
	tell application "System Events"
		set allApps to (get name of every application process) -- get all apps
		if allApps contains appname then -- find the app if it's running
			set allWin to (get every window of application process appname) -- get all the windows for our app
			set numWin to count allWin -- count the number of windows
			repeat with winNum from 1 to numWin
				set aWin to window winNum of application process appname
				set allText to (get value of every static text of aWin)
				if allText contains staticText then
					log "fwbst winnum: " & winNum
					return winNum
				end if
			end repeat
		end if
	end tell
	return null
end find_window_by_static_text

[/codesyntax]

7 Responses to “Mac OS X 10.6 VPN Passwort speichern”

  1. paul

    hi, andy!

    leider scheint der script nicht zu funktionieren. hattest du Probleme mit dem seit X.6.3?

    ich finde es total doof, das Kennwort immer eingeben zu müssen…

    wenn du noch nen Tipp haben könntest, schreib mit bitte mal kurz! pal(a)fhint.net

    danke!

    paul

  2. andybreuhan

    Gehe mal davon aus das du deine Verbindung und das Passwort angepasst hast.
    evtl. musst du mal probieren die Wartezeit unter:
    ————————-
    –Passworteingabefenster finden
    delay 0.2
    repeat with x from 1 to 20
    ————————-
    etwas zu erhöhen. Benutze es unter 10.6.3 sollte auch mit höheren Versionen funktionieren

  3. Mark

    Da dieser Blog-Eintrag in den Google-Ergebnissen recht hoch auftaucht, wenn man nach dem Problem sucht, möchte ich darauf hinweisen, dass es eine sichere Lösung des Problems gibt, die ohne Klartext-Passwort auskommet.

    Eigentlich speichert Snow Leopard nämlich den Schlüssel im Schlüsselbund ab, aufgrund unvollständiger Sicherheitseinstellungen hat aber der Prozess, der es dann auslesen will/muss keine Berechtigung dazu.

    Die Fehlerbehebung ist einfach, siehe:
    https://forum.neptun.ethz.ch/read.php?43,2093,2093
    oder
    http://www.macosxhints.com/article.php?story=2009082703155512

  4. andybreuhan

    Hi Mark danke für den Hinweis,
    möglich, dass es in manchen Konfigurationen wie bei macosxhints.com beschrieben gespeichert werden kann.
    In meinem Fall ist es aber ganz klar eine VPN Sicherheitseinstellung die dazu führt, dass das Passwort aus der Keychain bei jedem Verbindungsversuch automatisch gelöscht wird. Das kann man in den Cisco Routern so einstellen und der Apple VPN Client respektiert dies(im Gegensatz zu vpnc unter Linux).

Leave a Reply

  • (will not be published)

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>