I was poking around, learning how sessions are started. Basically, `shell` creates the comint buffer using `make-comint-in-buffer`. What I find interesting is that `make-comint-in-buffer` can also create a comint buffer from a network stream:
(let ((buff "*localhost-process-buffer*")) (switch-to-buffer (make-comint-in-buffer "localhost-process" buff "ssh" nil (format "%s@localhost" (getenv "USER"))))) So, rather than start a comint and then ssh from there, it's possible to let Emacs start the subprocess, manage the ssh connection, and just read that. Emacs makes a buffer from a network stream by calling start-process` using `shell-file-name`. `org-babel-shell-initialize` closes around `shell-file-name` with whatever shell language is used. Therefore, we could provide header arguments to pass parameters and the destination to ssh. I haven't made a judgment yet about whether any of this is good or bad. I thought it was interesting and figured I'd share.