The reason could be insufficient permissions. An app cannot simply chose to create a directory below
/data (other than its own,
/data/<package_name>, which is already created by the Android system when the app is being installed). So this was why it failed in the first place.
Even after you used your "root powers" to create the
/data/.ssh directory, and put a (most likely empty)
known_hosts file there, the issue was probably the same: both where owned by the user who created them (root), and the app might not have been able to enter the directory, let alone to write into the file.
There are two possible solutions to this. The first you chose yourself was granting the app
SUPER_USER privileges. If this is fine with you (and you trust the app for that), your issue is gone with that. Of course this requires the app to request the
SUPER_USER permission, which it obviously does in your case.
A more restrictive approach would have been granting the correct privileges to the directory and the file, by e.g.
chown it to the app's user, or
chmod appropriately. If owned by that app, only this app would have access there, which would be the best solution. For this, you would first need to figure out the user, which could be done e.g. using
ls -l /data/<package_name> (replace
<package_name> with the package name of the app), and then do a
chown -R <user>:<group> /data/.ssh.