diff --git a/client.go b/client.go
index 3fd2237..7e570c2 100644
--- a/client.go
+++ b/client.go
@@ -26,11 +26,12 @@ const HELP_TEXT string = SYSTEM_MESSAGE_FORMAT + `-> Available commands:
 ` + RESET
 
 const OP_HELP_TEXT string = SYSTEM_MESSAGE_FORMAT + `-> Available operator commands:
-   /ban $NAME           - Banish a user from the chat
-   /kick $NAME          - Kick em' out.
-   /op $NAME            - Promote a user to server operator.
-   /silence $NAME       - Revoke a user's ability to speak.
-   /motd $MESSAGE       - Sets the Message of the Day
+   /ban $NAME                - Banish a user from the chat
+   /kick $NAME               - Kick em' out.
+   /op $NAME                 - Promote a user to server operator.
+   /silence $NAME            - Revoke a user's ability to speak.
+   /motd $MESSAGE            - Sets the Message of the Day
+   /whitelist $FINGERPRINT   - Adds pubkey fingerprint to the connection whitelist
 ` + RESET
 
 const ABOUT_TEXT string = SYSTEM_MESSAGE_FORMAT + `-> ssh-chat is made by @shazow.
@@ -324,6 +325,16 @@ func (c *Client) handleShell(channel ssh.Channel) {
 					c.Server.SetMotd(newmotd)
 					c.Server.MotdBroadcast(c)
 				}
+			case "/whitelist": /* whitelist a fingerprint */
+				if !c.Server.IsOp(c) {
+					c.SysMsg("You're not an admin.")
+				} else if len(parts) != 2 {
+					c.SysMsg("Missing $FINGERPRINT from: /whitelist $FINGERPRINT")
+				} else {
+					fingerprint := parts[1]
+					c.Server.Whitelist(fingerprint)
+					c.SysMsg("Added %s to the whitelist", fingerprint)
+				}
 
 			default:
 				c.SysMsg("Invalid command: %s", line)