SFTPSessionManager: cache unique sessions + singleton