Estoy respondiendo a mí mismo, ya que finalmente descubrí el secreto. Ni la -topción sshni la -lopción para bashconducirán al shell de inicio de sesión por sí mismos, pero en combinación funcionan.
ssh user@host.com -t 'cd /some/where; FOO=BAR NUMBER=42 bash -l'cambia las variables de entorno de directorio, conjuntos, y luego comienza shell de entrada adecuada (la única diferencia que he encontrado hasta ahora es que /etc/motdno se muestra de esta manera - la cual es normalmente ssh's o loginresponsabilidad' s, no bash's - aparte de eso todo parece funcionar perfectamente, y todas las variables ambientales son idénticas).
Estos cambios en el entorno / directorio ocurren después de ssh, por lo que no están restringidos por PermitUserEnvironmentconfiguraciones relacionadas (exactamente como se planeó), sino antes .bashrc/ .profileejecutarse. Esto tiene ventajas y desventajas: es más difícil anular algo que se establece a partir de scripts de bash init PS1, pero es más fácil empaquetar exactamente los valores correctos en las sshlíneas de comando y .profilehacer todo el trabajo pesado.
Y si es realmente necesario, en realidad es bastante fácil hacer que bash ejecute algo después .profilecon una línea de comando como ssh user@foo.com -t 'cd /mnt; echo ". ~/.bash_profile; PS1=\"\\h-\w \"" >~/xxx; bash --init-file ~/xxx', muy feo cuando se pone de esa manera, pero estos .profilearchivos alternativos se pueden preparar antes. (Por lo que puedo decir, bashtiene algunas ubicaciones candidatas para el .profilescript y ejecutará la primera que se encuentre; . fileno tiene tales fallos automáticos, por lo que deberá verificar dónde está su normalidad profilesi desea hacer eso)