나는 마침내 비밀을 알게 되었기 때문에 스스로 대답하고 있습니다. 둘 -t에 대한 옵션 ssh, 나 -l에 대한 옵션을 bash하지만 그들은 작동 조합 - 자신에 로그인 쉘로 이어질 것입니다.
ssh user@host.com -t 'cd /some/where; FOO=BAR NUMBER=42 bash -l'디렉토리 설정 환경 변수를 변경 한 다음 적절한 로그인 쉘 (즉, 내가 지금까지 발견 한 유일한 차이점 시작 /etc/motd정상적으로입니다 - 이런 식으로 표시되지 않습니다 ssh의 또는 login의 책임,하지 bash의 - 모든 것이 아닌 것 같습니다 완벽하게 작동하고 모든 환경 변수는 동일합니다).
그들은 제한하지 않는 때문에 이러한 환경 / 디렉토리 변경, SSH 후 발생 PermitUserEnvironment과 관련된 설정을 (정확히 같은 계획)하지만 전 .bashrc/ .profile실행하세요. 여기에는 장점과 단점이 있습니다. bash init 스크립트에서 설정 한 내용을 무시하는 것이 더 어렵지만 PS1, 올바른 값을 ssh명령 행에 정확하게 패킹하기가 쉬우 며 .profile모든 노력 이 필요합니다.
실제로 필요한 경우 bash .profile가 명령 줄 을 사용하여 무언가를 실행하는 것은 실제로 매우 쉽습니다. ssh user@foo.com -t 'cd /mnt; echo ". ~/.bash_profile; PS1=\"\\h-\w \"" >~/xxx; bash --init-file ~/xxx'그런 식으로 넣을 때 매우 추악하지만 이러한 대체 .profile파일은 이전에 준비 할 수 있습니다. (내가 알 수 bash있는 한 .profile스크립트에 대한 후보 위치가 몇 개 있고 처음 발견 된 위치를 실행합니다- . file자동 폴 백이 없으므로 profile원하는 경우 정상적인 위치를 확인 해야합니다)