Re: Set PS1 on login?

2018-06-12 Thread Michael Albinus
yary  writes:

> ...you can pass information in the TERM environment variable, which is
> always copied (there may be a length limit however). You'll still have
> to make sure that the remote shell doesn't restrict the TERM variable
> to designate a known terminal type. Pass the -t option to ssh if
> you're not starting a remote interactive shell.
>
> env TERM="extra information:$TERM" ssh -t server.example.com 
> 'MYVAR=${TERM%:*}; TERM=${TERM##*:}; export MYVAR; mycommand'

Why shall one do this? Tramp sets the remote TERM environment variable
to "dumb", so you could check it.

If you dislike this value, set variable `tramp-terminal-type' to
whatever you want, at your own risk.

--8<---cut here---start->8---
(let ((tramp-terminal-type "whatever")
  (default-directory "/ssh::"))
  (shell-command-to-string "echo $TERM"))
--8<---cut here---end--->8---

> -y

Best regards, Michael.

___
Tramp-devel mailing list
Tramp-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/tramp-devel


Re: Set PS1 on login?

2018-06-12 Thread John Collins
Thanks for the fast responses. Apologies, I should have red the man page
more carefully. That looks like a good solution.

On Mon, Jun 11, 2018, 10:03 AM yary  wrote:

> Or better see
> https://superuser.com/questions/163167/when-sshing-how-can-i-set-an-environment-variable-on-the-server-that-changes-f
>
> ...you can pass information in the TERM environment variable, which is
> always copied (there may be a length limit however). You'll still have to
> make sure that the remote shell doesn't restrict the TERM variable to
> designate a known terminal type. Pass the -t option to ssh if you're not
> starting a remote interactive shell.
>
> env TERM="extra information:$TERM" ssh -t server.example.com 
> 'MYVAR=${TERM%:*}; TERM=${TERM##*:}; export MYVAR; mycommand'
>
>
>
>
> -y
>
> On Mon, Jun 11, 2018 at 9:49 AM, yary  wrote:
>
>> You may have an alternate way of setting PS1 at the client, though the
>> server may be configured to ignore it. The ssh man page says this on my
>> system:
>>
>> Additionally, ssh reads ~/.ssh/environment, and adds lines of the format
>> ``VARNAME=vale'' to the environment if the file exists and users are
>> allowed to change their environment.  For more information, see the
>> PermitUserEnvironment option in sshd_config(5).
>>
>>
>> -y
>>
>> On Mon, Jun 11, 2018 at 9:29 AM, Michael Albinus 
>> wrote:
>>
>>> John Collins  writes:
>>>
>>> > Hello,
>>>
>>> Hi John,
>>>
>>> > Happy (mostly) tramp user here that is also very new to it. As someone
>>> > working with remote machines that I do not own or control, TRAMPs
>>> > inability to handle fancy prompts is highly crippling. It's stated in
>>> > the FAQ that "tramp needs a clean recognizable prompt on the remote
>>> > host for accurate parsing". What I don't understand is why tramp can't
>>> > set PS1 when logging in the typical way one does:
>>> >
>>> > ssh ... -t 'PS1='$'; bash -i'
>>> >
>>> > When I modify tramp-maybe-open-connection to do this it works just
>>> > fine; I'm able to login to a remote that would hang with the message:
>>> >
>>> > Tramp: Waiting for prompts from remote shell...fail
>>> >
>>> > I figure there is a good reason this can't be done, but wanted to
>>> > raise the issue just in case.
>>>
>>> ssh does not allow this kind of environment passing. Try in your local
>>> shell
>>>
>>> --8<---cut here---start->8---
>>> # ssh localhost "PS1='$ '; /bin/sh"
>>> --8<---cut here---end--->8---
>>>
>>> or
>>>
>>> --8<---cut here---start->8---
>>> # ssh localhost "/usr/bin/env PS1='$ ' /bin/sh"
>>> --8<---cut here---end--->8---
>>>
>>> It doesn't work. Therefore, Tramp cannot use this mechanism.
>>>
>>> Instead, Tramp recommends to adapt the remote prompt by something like
>>> this in the remote ~/.profile:
>>>
>>> --8<---cut here---start->8---
>>> [ $TERM = "dumb" ] PS1='$ '
>>> --8<---cut here---end--->8---
>>>
>>> > Regards,
>>> >
>>> > John C.
>>>
>>> Best regards, Michael.
>>>
>>> ___
>>> Tramp-devel mailing list
>>> Tramp-devel@gnu.org
>>> https://lists.gnu.org/mailman/listinfo/tramp-devel
>>>
>>
>>
>
___
Tramp-devel mailing list
Tramp-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/tramp-devel


Re: Set PS1 on login?

2018-06-11 Thread yary
Or better see
https://superuser.com/questions/163167/when-sshing-how-can-i-set-an-environment-variable-on-the-server-that-changes-f

...you can pass information in the TERM environment variable, which is
always copied (there may be a length limit however). You'll still have to
make sure that the remote shell doesn't restrict the TERM variable to
designate a known terminal type. Pass the -t option to ssh if you're not
starting a remote interactive shell.

env TERM="extra information:$TERM" ssh -t server.example.com
'MYVAR=${TERM%:*}; TERM=${TERM##*:}; export MYVAR; mycommand'




-y

On Mon, Jun 11, 2018 at 9:49 AM, yary  wrote:

> You may have an alternate way of setting PS1 at the client, though the
> server may be configured to ignore it. The ssh man page says this on my
> system:
>
> Additionally, ssh reads ~/.ssh/environment, and adds lines of the format
> ``VARNAME=vale'' to the environment if the file exists and users are
> allowed to change their environment.  For more information, see the
> PermitUserEnvironment option in sshd_config(5).
>
>
> -y
>
> On Mon, Jun 11, 2018 at 9:29 AM, Michael Albinus 
> wrote:
>
>> John Collins  writes:
>>
>> > Hello,
>>
>> Hi John,
>>
>> > Happy (mostly) tramp user here that is also very new to it. As someone
>> > working with remote machines that I do not own or control, TRAMPs
>> > inability to handle fancy prompts is highly crippling. It's stated in
>> > the FAQ that "tramp needs a clean recognizable prompt on the remote
>> > host for accurate parsing". What I don't understand is why tramp can't
>> > set PS1 when logging in the typical way one does:
>> >
>> > ssh ... -t 'PS1='$'; bash -i'
>> >
>> > When I modify tramp-maybe-open-connection to do this it works just
>> > fine; I'm able to login to a remote that would hang with the message:
>> >
>> > Tramp: Waiting for prompts from remote shell...fail
>> >
>> > I figure there is a good reason this can't be done, but wanted to
>> > raise the issue just in case.
>>
>> ssh does not allow this kind of environment passing. Try in your local
>> shell
>>
>> --8<---cut here---start->8---
>> # ssh localhost "PS1='$ '; /bin/sh"
>> --8<---cut here---end--->8---
>>
>> or
>>
>> --8<---cut here---start->8---
>> # ssh localhost "/usr/bin/env PS1='$ ' /bin/sh"
>> --8<---cut here---end--->8---
>>
>> It doesn't work. Therefore, Tramp cannot use this mechanism.
>>
>> Instead, Tramp recommends to adapt the remote prompt by something like
>> this in the remote ~/.profile:
>>
>> --8<---cut here---start->8---
>> [ $TERM = "dumb" ] PS1='$ '
>> --8<---cut here---end--->8---
>>
>> > Regards,
>> >
>> > John C.
>>
>> Best regards, Michael.
>>
>> ___
>> Tramp-devel mailing list
>> Tramp-devel@gnu.org
>> https://lists.gnu.org/mailman/listinfo/tramp-devel
>>
>
>
___
Tramp-devel mailing list
Tramp-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/tramp-devel


Re: Set PS1 on login?

2018-06-11 Thread Michael Albinus
John Collins  writes:

> Hello,

Hi John,

> Happy (mostly) tramp user here that is also very new to it. As someone
> working with remote machines that I do not own or control, TRAMPs
> inability to handle fancy prompts is highly crippling. It's stated in
> the FAQ that "tramp needs a clean recognizable prompt on the remote
> host for accurate parsing". What I don't understand is why tramp can't
> set PS1 when logging in the typical way one does:
>
> ssh ... -t 'PS1='$'; bash -i'
>
> When I modify tramp-maybe-open-connection to do this it works just
> fine; I'm able to login to a remote that would hang with the message:
>
> Tramp: Waiting for prompts from remote shell...fail
>
> I figure there is a good reason this can't be done, but wanted to
> raise the issue just in case.

ssh does not allow this kind of environment passing. Try in your local
shell

--8<---cut here---start->8---
# ssh localhost "PS1='$ '; /bin/sh"
--8<---cut here---end--->8---

or

--8<---cut here---start->8---
# ssh localhost "/usr/bin/env PS1='$ ' /bin/sh"
--8<---cut here---end--->8---

It doesn't work. Therefore, Tramp cannot use this mechanism.

Instead, Tramp recommends to adapt the remote prompt by something like
this in the remote ~/.profile:

--8<---cut here---start->8---
[ $TERM = "dumb" ] PS1='$ '
--8<---cut here---end--->8---

> Regards,
>
> John C.

Best regards, Michael.

___
Tramp-devel mailing list
Tramp-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/tramp-devel