for users and hosts).
Update TODO file.
Some other small changes.
Handle unknown hosts in such a way that they're not always removed
from known_hosts file. Ask user to lsign the host key?
-Handle multiple multiple hostnames (multiple user IDs?) when
- generating host keys with gen-key.
+Handle multiple hostnames (multiple user IDs?) when generating host
+ keys with gen-key.
Make sure alternate ports are handled for known_hosts.
-Add environment variables sections to man pages.
-
Script to import private key into ssh agent.
Provide a friendly interactive UI for marginal or failing client-side
"tsign" in gpg(1).
Fix the order of questions when user does a tsign in gpg or gpg2.
+
+File bug against ssh-keygen about how "-R" option removes comments
+ from known_hosts file.
+
+File bug against ssh-keygen to see if we can get it to write to hash a
+ known_hosts file to/from stdout/stdin.
+
+Note all threat model reductions (with diagrams).
+
+Add environment variables sections to man pages.
+
+Environment variable scoping.
+
+Move environment variable precedence before conf file.
+
+Handle lockfiles when modifying known_hosts or authorized_keys.
+
+When using ssh-proxycommand, if only host keys found are expired or
+ revoked, then output loud warning with prompt, or fail hard.
+
+Update monkeysphere-ssh-proxycommand man page with new keyserver
+ checking policy info.
+
+Update monkeysphere-ssh-proxycommand man page with info about
+ no-connect option.
# s = sign
# c = certify
# a = authentication
-#REQUIRED_HOST_KEY_CAPABILITY="e a"
+#REQUIRED_HOST_KEY_CAPABILITY="a"
#REQUIRED_USER_KEY_CAPABILITY="a"
# ssh known_hosts file
# ssh authorized_keys file
#AUTHORIZED_KEYS=~/.ssh/known_hosts
+
+# This overrides other environment variables
+# NOTE: there is leakage
+#CHECK_KEYRING=true
}
# remove all lines with specified string from specified file
-remove_file_line() {
+remove_line() {
local file
local string
# remove user ID from file
log -n " removing user ID '$userID'... "
- remove_file_line "$AUTHORIZED_USER_IDS" "^${userID}$"
+ remove_line "$AUTHORIZED_USER_IDS" "^${userID}$"
loge "done."
}
while read -r ok keyid ; do
sshKey=$(gpg2ssh "$keyid")
# remove the old host key line
- remove_file_line "$KNOWN_HOSTS" "$sshKey"
+ remove_line "$KNOWN_HOSTS" "$sshKey"
# if key OK, add new host line
if [ "$ok" -eq '0' ] ; then
# hash if specified
while read -r ok keyid ; do
sshKey=$(gpg2ssh "$keyid")
# remove the old host key line
- remove_file_line "$AUTHORIZED_KEYS" "$sshKey"
+ remove_line "$AUTHORIZED_KEYS" "$sshKey"
# if key OK, add new host line
if [ "$ok" -eq '0' ] ; then
ssh2authorized_keys "$userID" "$sshKey" >> "$AUTHORIZED_KEYS"
GNUPGHOME=${GNUPGHOME:-"${HOME}/.gnupg"}
KEYSERVER=${KEYSERVER:-"subkeys.pgp.net"}
CHECK_KEYSERVER=${CHECK_KEYSERVER:="true"}
-REQUIRED_HOST_KEY_CAPABILITY=${REQUIRED_HOST_KEY_CAPABILITY:-"e a"}
+REQUIRED_HOST_KEY_CAPABILITY=${REQUIRED_HOST_KEY_CAPABILITY:-"a"}
REQUIRED_USER_KEY_CAPABILITY=${REQUIRED_USER_KEY_CAPABILITY:-"a"}
KNOWN_HOSTS=${KNOWN_HOSTS:-"${HOME}/.ssh/known_hosts"}
AUTHORIZED_KEYS=${AUTHORIZED_KEYS:-"${HOME}/.ssh/authorized_keys"}