diff --git a/mdt/command.py b/mdt/command.py
index 73f76f5..9158659 100644
--- a/mdt/command.py
+++ b/mdt/command.py
@@ -73,6 +73,15 @@
         except sshclient.DefaultLoginError as e:
             print("Can't login using default credentials: {0}".format(e))
             return 1
+        except sshclient.NonLocalDeviceError as e:
+            print()
+            print("It looks like you're trying to connect to a device that isn't connected\n"
+                  "to your workstation via USB and doesn't have the SSH key this MDT generated.\n"
+                  "To connect with `mdt shell` you will need to first connect to your device\n"
+                  "ONLY via USB.")
+            print()
+            print("Cowardly refusing to attempt to push a key to a public machine.\n")
+            return 1
         except SSHException as e:
             print("Couldn't establish ssh connection to device: {0}".format(e))
             return 1
diff --git a/mdt/sshclient.py b/mdt/sshclient.py
index 9355e96..207de90 100644
--- a/mdt/sshclient.py
+++ b/mdt/sshclient.py
@@ -42,6 +42,10 @@
     pass
 
 
+class NonLocalDeviceError(Exception):
+    pass
+
+
 class SshClient:
     def __init__(self, device, address):
         self.config = config.Config()
@@ -82,11 +86,26 @@
         return authorized_keys_line
 
     def _pushKeyViaKeymaster(self):
+        if not self.address.startswith('192.168.100'):
+            raise NonLocalDeviceError()
+
         connection = http.client.HTTPConnection(self.address, KEYMASTER_PORT)
         try:
             key_line = self._generateAuthorizedKeysLine()
-            connection.request('PUT', '/', key_line + '\n')
+            connection.request('PUT', '/', key_line + '\r\n')
             response = connection.getresponse()
+        except ConnectionRefusedError as e:
+            print()
+            print("Couldn't connect to keymaster on {0}: {1}.".format(self.device, e))
+            print()
+            print("Did you previously connect from a different machine? If so,\n"
+                  "mdt-keymaster will not be running as it only accepts a single key.\n")
+            print("You will need to either remove the key from ~/.ssh/authorized_keys\n"
+                  "via some other method (serial console, etc), or you will need to\n"
+                  "connect from the other machine to push an SSH public key to the\n"
+                  "authorized_keys file.")
+            print()
+            raise KeyPushError(e)
         except ConnectionError as e:
             raise KeyPushError(e)
         finally:
@@ -117,7 +136,7 @@
         try:
             self._pushKeyViaKeymaster()
         except KeyPushError as e:
-            print('Failed to push via keymaster -- attempting password login')
+            print('Failed to push via keymaster -- will attempt password login as a fallback.')
             self._pushKeyViaDefaultLogin()
 
         time.sleep(1)
