Mosh: Difference between revisions
imported>Mic92 No edit summary |
m Fix typo in header Tags: Mobile edit Mobile web edit Visual edit |
||
(4 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
[https://mosh.org/ Mosh] is an alternative SSH terminal. It has support for roaming, local echo and uses UDP for transport. It also aims to improve responsiveness on intermittent, and high latency connections. | |||
See the [https://search.nixos.org/packages?show=mosh&query=mosh mosh Package] and [https://search.nixos.org/options?query=programs.mosh mosh Options] | |||
== Installation == | |||
=== Client === | |||
Install the <code>[https://search.nixos.org/packages?show=mosh&query=mosh mosh]</code> package. | |||
=== Server === | |||
Enable the <code>[https://search.nixos.org/options?query=programs.mosh programs.mosh]</code> module. You can simply add the following into your <code>/etc/nixos/configuration.nix</code>: | |||
<syntaxhighlight lang=nix> | |||
# Enable mosh, the ssh alternative when client has bad connection | |||
# Opens UDP ports 60000 ... 61000 | |||
programs.mosh.enable = true; | |||
</syntaxhighlight> | |||
== Usage == | |||
With mosh installed on both the client and server, connect by running: | |||
<syntaxhighlight lang=console> | |||
$ mosh user@server | |||
</syntaxhighlight> | |||
Note that mosh uses SSH for authentication and initialization, so it will respect aliases and other options in <code>.ssh/config</code>. You can also specify SSH options using the <code>--ssh</code> argument. For example, to use port 1122 instead of 22, you can either use <code>Port 1122</code> in SSH config, or use mosh with the <code>--ssh</code> argument: | |||
<syntaxhighlight lang=console> | |||
$ mosh --ssh='ssh -p 1122' user@server | |||
</syntaxhighlight> | |||
More information is available at [https://mosh.org/#usage mosh.org] or using <code>[https://manpages.debian.org/bullseye/mosh/mosh.1.en.html man mosh]</code> | |||
== Troubleshooting == | == Troubleshooting == | ||
Line 17: | Line 51: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Then reconnect with mosh. | Then reconnect with mosh. Note that lingering is enabled by default in NixOS >= 16.09. | ||
As a workaround, it is also possible to set an alias in the user's shell on the server wrapping <code>mosh-server</code> to keep the session around. | As a workaround, it is also possible to set an alias in the user's shell on the server wrapping <code>mosh-server</code> to keep the session around. | ||
Line 27: | Line 61: | ||
See also https://github.com/NixOS/nixpkgs/issues/3702#issue-40762878 | See also https://github.com/NixOS/nixpkgs/issues/3702#issue-40762878 | ||
=== The locale requested by LANG=*** isn't available here. === | |||
This error occurs when trying to connect to a linux server (non-NixOS distribution) on which mosh-server has been installed via nix. The easy solution is to set LOCALE_ARCHIVE to your OS locale-archive in your .profile or .zshenv: | |||
<syntaxhighlight lang=bash> | |||
export LOCALE_ARCHIVE=/usr/lib/locale/locale-archive | |||
</syntaxhighlight> | |||
<hr /> | <hr /> | ||
== References == | == References == | ||
<references /> | <references /> | ||
[[Category:Applications]] |