We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Does Mackup still sync SSH keys by default?
Today I was using Mackup and I noticed this in the help documentation:

> By default, Mackup syncs all application data (including private keys!) via Dropbox, but may be configured to exclude applications or use a different backend with a .mackup.cfg file.

I really like Mackup—it saves a ton of time when setting up a new computer. However, the idea of automatically syncing SSH keys by default really scares me. A few years ago I accidentally exposed an SSH key and someone used it to charge a few thousand dollars to AWS for my company. I'd really like to avoid doing anything like this again in the future.

In reading through #512 and #109, it looks like this behavior was turned off. However, the help documentation doesn't seem to indicate that. So which one is correct? I feel strongly that synching private keys by default is not obvious behavior, and it has the potential to have some serious consequences.

Also, will Mackup sync other types of sensitive information in the future? What scares me most about this is not necessarily what Mackup is syncing today, but what it might add in the future that I don't notice.

Thanks!

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `mackup/main.py`
Content:
```
1 """Mackup.
2 
3 Keep your application settings in sync.
4 Copyright (C) 2013-2015 Laurent Raufaste <http://glop.org/>
5 
6 Usage:
7   mackup list
8   mackup [options] backup
9   mackup [options] restore
10   mackup [options] uninstall
11   mackup (-h | --help)
12   mackup --version
13 
14 Options:
15   -h --help     Show this screen.
16   -f --force    Force every question asked to be answered with "Yes".
17   -n --dry-run  Show steps without executing.
18   -v --verbose  Show additional details.
19   --version     Show version.
20 
21 Modes of action:
22  1. list: display a list of all supported applications.
23  2. backup: sync your conf files to your synced storage, use this the 1st time
24     you use Mackup. (Note that by default this will sync private keys used by
25     GnuPG.)
26  3. restore: link the conf files already in your synced storage on your system,
27     use it on any new system you use.
28  4. uninstall: reset everything as it was before using Mackup.
29 
30 By default, Mackup syncs all application data (including some private keys!)
31 via Dropbox, but may be configured to exclude applications or use a different
32 backend with a .mackup.cfg file.
33 
34 See https://github.com/lra/mackup/tree/master/doc for more information.
35 
36 """
37 from docopt import docopt
38 from .appsdb import ApplicationsDatabase
39 from .application import ApplicationProfile
40 from .constants import MACKUP_APP_NAME, VERSION
41 from .mackup import Mackup
42 from . import utils
43 
44 
45 class ColorFormatCodes:
46     BLUE = '\033[34m'
47     BOLD = '\033[1m'
48     NORMAL = '\033[0m'
49 
50 
51 def header(str):
52     return ColorFormatCodes.BLUE + str + ColorFormatCodes.NORMAL
53 
54 
55 def bold(str):
56     return ColorFormatCodes.BOLD + str + ColorFormatCodes.NORMAL
57 
58 
59 def main():
60     """Main function."""
61     # Get the command line arg
62     args = docopt(__doc__, version="Mackup {}".format(VERSION))
63 
64     mckp = Mackup()
65     app_db = ApplicationsDatabase()
66 
67     def printAppHeader(app_name):
68         if verbose:
69             print(("\n{0} {1} {0}").format(header("---"), bold(app_name)))
70 
71     # If we want to answer mackup with "yes" for each question
72     if args['--force']:
73         utils.FORCE_YES = True
74 
75     dry_run = args['--dry-run']
76 
77     verbose = args['--verbose']
78 
79     if args['backup']:
80         # Check the env where the command is being run
81         mckp.check_for_usable_backup_env()
82 
83         # Backup each application
84         for app_name in sorted(mckp.get_apps_to_backup()):
85             app = ApplicationProfile(mckp,
86                                      app_db.get_files(app_name),
87                                      dry_run,
88                                      verbose)
89             printAppHeader(app_name)
90             app.backup()
91 
92     elif args['restore']:
93         # Check the env where the command is being run
94         mckp.check_for_usable_restore_env()
95 
96         # Restore the Mackup config before any other config, as we might need
97         # it to know about custom settings
98         mackup_app = ApplicationProfile(mckp,
99                                         app_db.get_files(MACKUP_APP_NAME),
100                                         dry_run,
101                                         verbose)
102         printAppHeader(MACKUP_APP_NAME)
103         mackup_app.restore()
104 
105         # Initialize again the apps db, as the Mackup config might have changed
106         # it
107         mckp = Mackup()
108         app_db = ApplicationsDatabase()
109 
110         # Restore the rest of the app configs, using the restored Mackup config
111         app_names = mckp.get_apps_to_backup()
112         # Mackup has already been done
113         app_names.discard(MACKUP_APP_NAME)
114 
115         for app_name in sorted(app_names):
116             app = ApplicationProfile(mckp,
117                                      app_db.get_files(app_name),
118                                      dry_run,
119                                      verbose)
120             printAppHeader(app_name)
121             app.restore()
122 
123     elif args['uninstall']:
124         # Check the env where the command is being run
125         mckp.check_for_usable_restore_env()
126 
127         if dry_run or (
128            utils.confirm("You are going to uninstall Mackup.\n"
129                          "Every configuration file, setting and dotfile"
130                          " managed by Mackup will be unlinked and moved back"
131                          " to their original place, in your home folder.\n"
132                          "Are you sure ?")):
133 
134             # Uninstall the apps except Mackup, which we'll uninstall last, to
135             # keep the settings as long as possible
136             app_names = mckp.get_apps_to_backup()
137             app_names.discard(MACKUP_APP_NAME)
138 
139             for app_name in sorted(app_names):
140                 app = ApplicationProfile(mckp,
141                                          app_db.get_files(app_name),
142                                          dry_run,
143                                          verbose)
144                 printAppHeader(app_name)
145                 app.uninstall()
146 
147             # Restore the Mackup config before any other config, as we might
148             # need it to know about custom settings
149             mackup_app = ApplicationProfile(mckp,
150                                             app_db.get_files(MACKUP_APP_NAME),
151                                             dry_run,
152                                             verbose)
153             mackup_app.uninstall()
154 
155             # Delete the Mackup folder in Dropbox
156             # Don't delete this as there might be other Macs that aren't
157             # uninstalled yet
158             # delete(mckp.mackup_folder)
159 
160             print("\n"
161                   "All your files have been put back into place. You can now"
162                   " safely uninstall Mackup.\n"
163                   "\n"
164                   "Thanks for using Mackup !")
165 
166     elif args['list']:
167         # Display the list of supported applications
168         mckp.check_for_usable_environment()
169         output = "Supported applications:\n"
170         for app_name in sorted(app_db.get_app_names()):
171             output += " - {}\n".format(app_name)
172         output += "\n"
173         output += ("{} applications supported in Mackup v{}"
174                    .format(len(app_db.get_app_names()), VERSION))
175         print(output)
176 
177     # Delete the tmp folder
178     mckp.clean_temp_folder()
179
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/mackup/main.py b/mackup/main.py
--- a/mackup/main.py
+++ b/mackup/main.py
@@ -27,8 +27,8 @@
     use it on any new system you use.
  4. uninstall: reset everything as it was before using Mackup.
 
-By default, Mackup syncs all application data (including some private keys!)
-via Dropbox, but may be configured to exclude applications or use a different
+By default, Mackup syncs all application data (except for private keys) via
+Dropbox, but may be configured to exclude applications or use a different
 backend with a .mackup.cfg file.
 
 See https://github.com/lra/mackup/tree/master/doc for more information.

{"golden_diff": "diff --git a/mackup/main.py b/mackup/main.py\n--- a/mackup/main.py\n+++ b/mackup/main.py\n@@ -27,8 +27,8 @@\n     use it on any new system you use.\n  4. uninstall: reset everything as it was before using Mackup.\n \n-By default, Mackup syncs all application data (including some private keys!)\n-via Dropbox, but may be configured to exclude applications or use a different\n+By default, Mackup syncs all application data (except for private keys) via\n+Dropbox, but may be configured to exclude applications or use a different\n backend with a .mackup.cfg file.\n \n See https://github.com/lra/mackup/tree/master/doc for more information.\n", "issue": "Does Mackup still sync SSH keys by default?\nToday I was using Mackup and I noticed this in the help documentation:\r\n\r\n> By default, Mackup syncs all application data (including private keys!) via Dropbox, but may be configured to exclude applications or use a different backend with a .mackup.cfg file.\r\n\r\nI really like Mackup\u2014it saves a ton of time when setting up a new computer. However, the idea of automatically syncing SSH keys by default really scares me. A few years ago I accidentally exposed an SSH key and someone used it to charge a few thousand dollars to AWS for my company. I'd really like to avoid doing anything like this again in the future.\r\n\r\nIn reading through #512 and #109, it looks like this behavior was turned off. However, the help documentation doesn't seem to indicate that. So which one is correct? I feel strongly that synching private keys by default is not obvious behavior, and it has the potential to have some serious consequences.\r\n\r\nAlso, will Mackup sync other types of sensitive information in the future? What scares me most about this is not necessarily what Mackup is syncing today, but what it might add in the future that I don't notice.\r\n\r\nThanks!\n", "before_files": [{"content": "\"\"\"Mackup.\n\nKeep your application settings in sync.\nCopyright (C) 2013-2015 Laurent Raufaste <http://glop.org/>\n\nUsage:\n  mackup list\n  mackup [options] backup\n  mackup [options] restore\n  mackup [options] uninstall\n  mackup (-h | --help)\n  mackup --version\n\nOptions:\n  -h --help     Show this screen.\n  -f --force    Force every question asked to be answered with \"Yes\".\n  -n --dry-run  Show steps without executing.\n  -v --verbose  Show additional details.\n  --version     Show version.\n\nModes of action:\n 1. list: display a list of all supported applications.\n 2. backup: sync your conf files to your synced storage, use this the 1st time\n    you use Mackup. (Note that by default this will sync private keys used by\n    GnuPG.)\n 3. restore: link the conf files already in your synced storage on your system,\n    use it on any new system you use.\n 4. uninstall: reset everything as it was before using Mackup.\n\nBy default, Mackup syncs all application data (including some private keys!)\nvia Dropbox, but may be configured to exclude applications or use a different\nbackend with a .mackup.cfg file.\n\nSee https://github.com/lra/mackup/tree/master/doc for more information.\n\n\"\"\"\nfrom docopt import docopt\nfrom .appsdb import ApplicationsDatabase\nfrom .application import ApplicationProfile\nfrom .constants import MACKUP_APP_NAME, VERSION\nfrom .mackup import Mackup\nfrom . import utils\n\n\nclass ColorFormatCodes:\n    BLUE = '\\033[34m'\n    BOLD = '\\033[1m'\n    NORMAL = '\\033[0m'\n\n\ndef header(str):\n    return ColorFormatCodes.BLUE + str + ColorFormatCodes.NORMAL\n\n\ndef bold(str):\n    return ColorFormatCodes.BOLD + str + ColorFormatCodes.NORMAL\n\n\ndef main():\n    \"\"\"Main function.\"\"\"\n    # Get the command line arg\n    args = docopt(__doc__, version=\"Mackup {}\".format(VERSION))\n\n    mckp = Mackup()\n    app_db = ApplicationsDatabase()\n\n    def printAppHeader(app_name):\n        if verbose:\n            print((\"\\n{0} {1} {0}\").format(header(\"---\"), bold(app_name)))\n\n    # If we want to answer mackup with \"yes\" for each question\n    if args['--force']:\n        utils.FORCE_YES = True\n\n    dry_run = args['--dry-run']\n\n    verbose = args['--verbose']\n\n    if args['backup']:\n        # Check the env where the command is being run\n        mckp.check_for_usable_backup_env()\n\n        # Backup each application\n        for app_name in sorted(mckp.get_apps_to_backup()):\n            app = ApplicationProfile(mckp,\n                                     app_db.get_files(app_name),\n                                     dry_run,\n                                     verbose)\n            printAppHeader(app_name)\n            app.backup()\n\n    elif args['restore']:\n        # Check the env where the command is being run\n        mckp.check_for_usable_restore_env()\n\n        # Restore the Mackup config before any other config, as we might need\n        # it to know about custom settings\n        mackup_app = ApplicationProfile(mckp,\n                                        app_db.get_files(MACKUP_APP_NAME),\n                                        dry_run,\n                                        verbose)\n        printAppHeader(MACKUP_APP_NAME)\n        mackup_app.restore()\n\n        # Initialize again the apps db, as the Mackup config might have changed\n        # it\n        mckp = Mackup()\n        app_db = ApplicationsDatabase()\n\n        # Restore the rest of the app configs, using the restored Mackup config\n        app_names = mckp.get_apps_to_backup()\n        # Mackup has already been done\n        app_names.discard(MACKUP_APP_NAME)\n\n        for app_name in sorted(app_names):\n            app = ApplicationProfile(mckp,\n                                     app_db.get_files(app_name),\n                                     dry_run,\n                                     verbose)\n            printAppHeader(app_name)\n            app.restore()\n\n    elif args['uninstall']:\n        # Check the env where the command is being run\n        mckp.check_for_usable_restore_env()\n\n        if dry_run or (\n           utils.confirm(\"You are going to uninstall Mackup.\\n\"\n                         \"Every configuration file, setting and dotfile\"\n                         \" managed by Mackup will be unlinked and moved back\"\n                         \" to their original place, in your home folder.\\n\"\n                         \"Are you sure ?\")):\n\n            # Uninstall the apps except Mackup, which we'll uninstall last, to\n            # keep the settings as long as possible\n            app_names = mckp.get_apps_to_backup()\n            app_names.discard(MACKUP_APP_NAME)\n\n            for app_name in sorted(app_names):\n                app = ApplicationProfile(mckp,\n                                         app_db.get_files(app_name),\n                                         dry_run,\n                                         verbose)\n                printAppHeader(app_name)\n                app.uninstall()\n\n            # Restore the Mackup config before any other config, as we might\n            # need it to know about custom settings\n            mackup_app = ApplicationProfile(mckp,\n                                            app_db.get_files(MACKUP_APP_NAME),\n                                            dry_run,\n                                            verbose)\n            mackup_app.uninstall()\n\n            # Delete the Mackup folder in Dropbox\n            # Don't delete this as there might be other Macs that aren't\n            # uninstalled yet\n            # delete(mckp.mackup_folder)\n\n            print(\"\\n\"\n                  \"All your files have been put back into place. You can now\"\n                  \" safely uninstall Mackup.\\n\"\n                  \"\\n\"\n                  \"Thanks for using Mackup !\")\n\n    elif args['list']:\n        # Display the list of supported applications\n        mckp.check_for_usable_environment()\n        output = \"Supported applications:\\n\"\n        for app_name in sorted(app_db.get_app_names()):\n            output += \" - {}\\n\".format(app_name)\n        output += \"\\n\"\n        output += (\"{} applications supported in Mackup v{}\"\n                   .format(len(app_db.get_app_names()), VERSION))\n        print(output)\n\n    # Delete the tmp folder\n    mckp.clean_temp_folder()\n", "path": "mackup/main.py"}], "after_files": [{"content": "\"\"\"Mackup.\n\nKeep your application settings in sync.\nCopyright (C) 2013-2015 Laurent Raufaste <http://glop.org/>\n\nUsage:\n  mackup list\n  mackup [options] backup\n  mackup [options] restore\n  mackup [options] uninstall\n  mackup (-h | --help)\n  mackup --version\n\nOptions:\n  -h --help     Show this screen.\n  -f --force    Force every question asked to be answered with \"Yes\".\n  -n --dry-run  Show steps without executing.\n  -v --verbose  Show additional details.\n  --version     Show version.\n\nModes of action:\n 1. list: display a list of all supported applications.\n 2. backup: sync your conf files to your synced storage, use this the 1st time\n    you use Mackup. (Note that by default this will sync private keys used by\n    GnuPG.)\n 3. restore: link the conf files already in your synced storage on your system,\n    use it on any new system you use.\n 4. uninstall: reset everything as it was before using Mackup.\n\nBy default, Mackup syncs all application data (except for private keys) via\nDropbox, but may be configured to exclude applications or use a different\nbackend with a .mackup.cfg file.\n\nSee https://github.com/lra/mackup/tree/master/doc for more information.\n\n\"\"\"\nfrom docopt import docopt\nfrom .appsdb import ApplicationsDatabase\nfrom .application import ApplicationProfile\nfrom .constants import MACKUP_APP_NAME, VERSION\nfrom .mackup import Mackup\nfrom . import utils\n\n\nclass ColorFormatCodes:\n    BLUE = '\\033[34m'\n    BOLD = '\\033[1m'\n    NORMAL = '\\033[0m'\n\n\ndef header(str):\n    return ColorFormatCodes.BLUE + str + ColorFormatCodes.NORMAL\n\n\ndef bold(str):\n    return ColorFormatCodes.BOLD + str + ColorFormatCodes.NORMAL\n\n\ndef main():\n    \"\"\"Main function.\"\"\"\n    # Get the command line arg\n    args = docopt(__doc__, version=\"Mackup {}\".format(VERSION))\n\n    mckp = Mackup()\n    app_db = ApplicationsDatabase()\n\n    def printAppHeader(app_name):\n        if verbose:\n            print((\"\\n{0} {1} {0}\").format(header(\"---\"), bold(app_name)))\n\n    # If we want to answer mackup with \"yes\" for each question\n    if args['--force']:\n        utils.FORCE_YES = True\n\n    dry_run = args['--dry-run']\n\n    verbose = args['--verbose']\n\n    if args['backup']:\n        # Check the env where the command is being run\n        mckp.check_for_usable_backup_env()\n\n        # Backup each application\n        for app_name in sorted(mckp.get_apps_to_backup()):\n            app = ApplicationProfile(mckp,\n                                     app_db.get_files(app_name),\n                                     dry_run,\n                                     verbose)\n            printAppHeader(app_name)\n            app.backup()\n\n    elif args['restore']:\n        # Check the env where the command is being run\n        mckp.check_for_usable_restore_env()\n\n        # Restore the Mackup config before any other config, as we might need\n        # it to know about custom settings\n        mackup_app = ApplicationProfile(mckp,\n                                        app_db.get_files(MACKUP_APP_NAME),\n                                        dry_run,\n                                        verbose)\n        printAppHeader(MACKUP_APP_NAME)\n        mackup_app.restore()\n\n        # Initialize again the apps db, as the Mackup config might have changed\n        # it\n        mckp = Mackup()\n        app_db = ApplicationsDatabase()\n\n        # Restore the rest of the app configs, using the restored Mackup config\n        app_names = mckp.get_apps_to_backup()\n        # Mackup has already been done\n        app_names.discard(MACKUP_APP_NAME)\n\n        for app_name in sorted(app_names):\n            app = ApplicationProfile(mckp,\n                                     app_db.get_files(app_name),\n                                     dry_run,\n                                     verbose)\n            printAppHeader(app_name)\n            app.restore()\n\n    elif args['uninstall']:\n        # Check the env where the command is being run\n        mckp.check_for_usable_restore_env()\n\n        if dry_run or (\n           utils.confirm(\"You are going to uninstall Mackup.\\n\"\n                         \"Every configuration file, setting and dotfile\"\n                         \" managed by Mackup will be unlinked and moved back\"\n                         \" to their original place, in your home folder.\\n\"\n                         \"Are you sure ?\")):\n\n            # Uninstall the apps except Mackup, which we'll uninstall last, to\n            # keep the settings as long as possible\n            app_names = mckp.get_apps_to_backup()\n            app_names.discard(MACKUP_APP_NAME)\n\n            for app_name in sorted(app_names):\n                app = ApplicationProfile(mckp,\n                                         app_db.get_files(app_name),\n                                         dry_run,\n                                         verbose)\n                printAppHeader(app_name)\n                app.uninstall()\n\n            # Restore the Mackup config before any other config, as we might\n            # need it to know about custom settings\n            mackup_app = ApplicationProfile(mckp,\n                                            app_db.get_files(MACKUP_APP_NAME),\n                                            dry_run,\n                                            verbose)\n            mackup_app.uninstall()\n\n            # Delete the Mackup folder in Dropbox\n            # Don't delete this as there might be other Macs that aren't\n            # uninstalled yet\n            # delete(mckp.mackup_folder)\n\n            print(\"\\n\"\n                  \"All your files have been put back into place. You can now\"\n                  \" safely uninstall Mackup.\\n\"\n                  \"\\n\"\n                  \"Thanks for using Mackup !\")\n\n    elif args['list']:\n        # Display the list of supported applications\n        mckp.check_for_usable_environment()\n        output = \"Supported applications:\\n\"\n        for app_name in sorted(app_db.get_app_names()):\n            output += \" - {}\\n\".format(app_name)\n        output += \"\\n\"\n        output += (\"{} applications supported in Mackup v{}\"\n                   .format(len(app_db.get_app_names()), VERSION))\n        print(output)\n\n    # Delete the tmp folder\n    mckp.clean_temp_folder()\n", "path": "mackup/main.py"}]}