For the iofogctl “EdgeOps” command-line tool, you put your SSH key or keys into the remote hosts in order to facilitate deployment. This is similar to DevOps tools. The private key is not placed in the remote host, of course!
By default, ioFog is installed with security features set to “open” for an easier experience getting started. When you are ready to put a bit more work into your ioFog deployment and prepare for production, you should activate several security features.
The communication between ioFog Agent instances and the Controller is private but to enable encrypted communication you need to turn off “developer mode” on Controller and Agents. When you do this, you will need to have an identity certificate loaded onto Controller and the public cert will need to be placed on Agent instances so each instance can verify the identity of Controller and then communicate securely if the identity checks are OK.
Additionally, you will probably want to activate the “isolated containers” mode on Agent. This is a watchdog feature that prevents non-authorized edge microservices from running. With this feature activated, only microservices authorized by Controller are allowed to run on the edge node.
I have been doing some work to document the security architecture of ioFog in detail and release it as part of the docs. While I get that ready, please let us know if you have additional particular questions.
Also - here is a document about security challenges at the edge that I published at the CNCF along with some great contributions from co-authors. It does not solve security issues but gives you a good framework for evaluating which security issues are meaningful for your use case or situation: