private function writeSSHFile(User $user, $ssh_dir) { $ssh_keys = implode("\n", $user->getAuthorizedKeysArray()); if (file_put_contents("{$ssh_dir}/authorized_keys_new", $ssh_keys) === false) { throw new RuntimeException("Unable to write authorized_keys_new file for " . $user->getUserName()); } if (rename("{$ssh_dir}/authorized_keys_new", "{$ssh_dir}/authorized_keys") === false) { throw new RuntimeException("Unable to rename authorized_keys_new file for " . $user->getUserName()); } $this->chmod("{$ssh_dir}/authorized_keys", 0600); $this->chown("{$ssh_dir}/authorized_keys", $user->getUserName()); $this->chgrp("{$ssh_dir}/authorized_keys", $user->getUserName()); }