Show README.html syntax highlighted
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"
"http://www.w3.org/MarkUp/Wilbur/HTML32.dtd">
<html>
<head>
<title>SSHPassKey</title>
</head>
<body>
<h1>SSHPassKey v1.2</h1>
<a href="mailto:bbum@codefab.com?subject=SSHPassKey%20Feedback">Bill Bumgarner <bbum@codefab.com></a><br><br>
<h3><i>Important Notes</i></h3>
You must ssh to the server at least once from the command line to authorize the host key. The hostname used must be <i>exactly</i> the same as used within, say, the CVSROOT.<br><br> The first time ssh contacts a host, it asks the user to validate the authenticity of the host. This question must be answered prior to being able to use the SSH_ASKPASS / <b>SSHPassKey</b> means of asking the user for a password via a GUI application.
<br><br>
<h3>ChangeLog</h3>
<h5>1.1 -> 1.2</h5>
<ul>
<li>wolf: Updated project to Universal Binary.
<li>wolf: Killed Project Builder plugin. I don't need it, so I didn't bother updating it.</li>
</ul>
<h5>1.0 -> 1.1</h5>
<ul>
<li>Added automatic configuration and unconfiguration of ~/.MacOSX/environment.plist. This should make <b>SSHPassKey</b> <i>just work</i> with Sen:te's <a href="http://www.sente.ch/software/cvl/"><b>CVL application</b></a>.</li>
<li>Was confused at 3 in the morning when original writing the code; had a bunch of confused references to SSHAskPass, SSH_ASKPASS, and some other spurious leftovers. Did a general code cleanup. Also cleaned up some mistakes in the NIB file.</li>
<li>Setting the <b>SSHPassKeyCVSDebugEnabled</b> default to use in the <b>com.apple.ProjectBuilder</b> domain to <b>YES</b> will cause the PBXSSHPassKey bundle to spew the command, environment variables and arguments used by <b>Project Builder</b> to make a cvs request. It is an evil hack involving method swizzling. If <b>Project Builder</b> is running, will not take affect until PB is restarted. This is useful for seeing exactly how PB interacts with cvs.</li>
<li>Added a switch to the password query window that controls whether or not the entered password is added to your keychain.</li
<li>Documented a bug in <b>PBXExtraPlugInFolders</b>'s implementation within <b>Project Builder</b>. It should be able to accept an array of paths, but currently cannot. This will be fixed in the next release of <b>Project Builder</b>.</li>
<li>By using the <b>build</b> script found in <i>Tools/</i> in the <a href="http://mosxland.sourceforge.net">Mosxland sourceforge CVS repository</a>, the project can automatically build a disk image containing the source, built application, and README files. This makes packaging for distribution painless. <i>Thanks to Mike Trent for the script!</i>.</li>
</ul>
<h3>README</h3>
<b>SSHPassKey</b> is a simple application that can be used by ssh to ask for a password when not running ssh in a unix shell window. <b>SSHPassKey</b> can optionally store the passwords into the user's keychain. When stored in the keychain, any subsequent request for that password will be automatically handled by <b>SSHPassKey</b>.<br><br>
<b>SSHPassKey</b> includes a <b>Project Builder</b> plugin inside the app wrapper that can automatically configure Project Builder's CVS module to use <b>SSHPassKey</b> to for any password requests from ssh. The bundle can be automatically installed and configured by running <b>SSHPassKey</b> from the finder and clicking the <i>Configure Project Builder to use SSH Ask Key</i> found at the bottom of the README window. The button simply writes some defaults into the <b>com.apple.ProjectBuilder</b> defaults domain; the plugin provides UI for viewing the defaults. If the <b>SSHPassKey</b> app is moved, simply launch from the Finder and click the configure button again and the app will update the defaults to reflect the new location (otherwise, the CVS module's behavior will revert back to whatever it was prior to the installation of <b>SSHPassKey</b>).<br><br>
Simply click the <i>Revert Project Builder to Default CVS Behavior</i> to remove the four defaults from <b>Project Builder</b>'s defaults domain to uninstall the pluging and disable the use of <b>SSHPassKey</b>.
<b>SSHPassKey</b> cannot validate passwords or detect when a password changes. If a password stored in the keychain is incorrect or changes, the entry can be deleted using the <b>Keychain Access</b> application provided with OS X. Passwords are stored in the keychain by server name. If multiple accounts are used with a single server, the account can be viewed in <b>Keychain Access</b> by using the Get Info feature.<br><br>
If more than one <b>SSHPassKey</b> application is asking for the same password, the user only needs to type the password in once. Each instance of <b>SSHPassKey</b> monitors the keychain for changes and automatically rechecks for password availability any time a password has been added to or modified within a keychain.<br><br>
<b>SSHPassKey</b> makes no attempt to hide its app icon on the dock. The dock icon ensures that the password entry window is always just a click away -- handy when it becomes buried under numerous PB windows. However, there will be an occasion where <b>Project Builder</b> will launch half a dozen or more instances of <b>SSHPassKey</b>.<br><br>
<h3>Using SSHPassKey Universally</h3>
By setting a couple of environment variables, <b>SSHPassKey</b> is automatically used by <b>ssh</b> whenever it needs a password, but is running without connection to TTY (i.e. running somewhere other than a shell window). This includes contexts outside of <b>Project Builder</b> (and, due to a bug in the Finder/Dock, will not always apply to PB anyway). OS X provides a mechanism for setting environment variables across all applications. Click the 'Configure Login Environment to use SSHPassKey' button to automatically add (or update) the appropriate environment variables to <b>~/.MacOSX/environment.plist</b>. If the file or directory does not exist, it will be created. If the file already exists, other entries will be preserved.
<br><br>
Once added, see <b>~/.MacOSX/environment.plist</b> for an example of the three environment variables-- SSH_ASKPASS, DISPLAY, and CVS_RSH-- necessary to make ssh ask for passwords via a GUI application (and force cvs to always use ssh when not in local or pserver mode).
</body>
</html>
See more files for this project here