As @einsiedlerkrebs and me prefer commandline-driven build and firmware programming environments, we usually add appropriate support for that to the firmware repositories we are maintaining [1,2]. By doing it this way, the ramp-up time to build the firmware and upload it to the device is really low as the task is usually completely automated and can be run through any reasonable shell ¹, even remote.
Obviously, when taking the next step towards MCU programming, your system would require having both machines in place where you would log in to your remote Linux computer as usual but then would program the microcontroller from there by just typing
"make && make upload" ² after changing to the corresponding firmware source directory.
Microcontrollers on ready-to-run development-like boards are usually connected through USB these days, so it’s really just plug&play anyways ;]. ³
 GitHub - hiveeyes/arduino: Arduino-compatible MCU code for sensor and telemetry nodes.
 GitHub - hiveeyes/hiveeyes-micropython-firmware: Hiveeyes MicroPython Datalogger -- Data logging for humans
¹ Obviously, the Linux environment beyond the “reasonable shell” will have to have the respective development toolkit and compiler toolchain installed. However, we can resort to the Firmware builder if this would not be possible due to runtime constraints, see also Firmware builder usage.
² “Command may be slightly different from actual item.” ;]
³ Saying that, there might definitively be issues from outside conditions to any parts where connectors are involved. While @weef might have something to say about that, please recognize that @einsiedlerkrebs and me are coming from LinkIt Smart 7688 Duo as RFM95 to Wifi-BERadio gateway (LinkIt Smart 7688 Duo) here.