mosh:一个基于 SSH 用于连接远程 Unix/Linux 系统的工具

简介:

Mosh 表示移动 ShellMobile Shell,是一个用于从客户端跨互联网连接远程服务器的命令行工具。它能用于 SSH 连接,但是比 Secure Shell 功能更多。它是一个类似于 SSH 而带有更多功能的应用。程序最初由 Keith Winstein 编写,用于类 Unix 的操作系统中,发布于GNU GPL v3协议下。

Mosh Shell SSH 客户端

Mosh Shell SSH 客户端

Mosh的功能

  • 它是一个支持漫游的远程终端程序。
  • 在所有主流的类 Unix 版本中可用,如 Linux、FreeBSD、Solaris、Mac OS X 和 Android。
  • 支持不稳定连接
  • 支持智能的本地回显
  • 支持用户输入的行编辑
  • 响应式设计及在 wifi、3G、长距离连接下的鲁棒性
  • 在 IP 改变后保持连接。它使用 UDP 代替 TCP(在 SSH 中使用),当连接被重置或者获得新的 IP 后 TCP 会超时,但是 UDP 仍然保持连接。
  • 在很长的时候之后恢复会话时仍然保持连接。
  • 没有网络延迟。立即显示用户输入和删除而没有延迟
  • 像 SSH 那样支持一些旧的方式登录。
  • 包丢失处理机制

Linux 中 mosh 的安装

在 Debian、Ubuntu 和 Mint 类似的系统中,你可以很容易地用 apt-get 包管理器安装。


 
 
  1. # apt-get update
  2. # apt-get install mosh

在基于 RHEL/CentOS/Fedora 的系统中,要使用 yum 包管理器安装 mosh,你需要打开第三方的 EPEL


 
 
  1. # yum update
  2. # yum install mosh

在 Fedora 22+的版本中,你需要使用 dnf 包管理器来安装 mosh。


 
 
  1. # dnf install mosh

我该如何使用 mosh?

1、 让我们尝试使用 mosh 登录远程 Linux 服务器。


 
 
  1. $ mosh root@192.168.0.150

mosh远程连接

mosh远程连接

注意:你有没有看到一个连接错误,因为我在 CentOS 7中还有打开这个端口。一个快速但是我并不建议的解决方法是:


 
 
  1. # systemctl stop firewalld [在远程服务器上]

更好的方法是打开一个端口并更新防火墙规则。接着用 mosh 连接到预定义的端口中。至于更深入的细节,也许你会对下面的文章感兴趣。

2、 让我们假设把默认的 22 端口改到 70,这时使用 -p 选项来使用自定义端口。


 
 
  1. $ mosh -p 70 root@192.168.0.150

3、 检查 mosh 的版本


 
 
  1. $ mosh --version

检查mosh版本

检查mosh版本

4、 你可以输入exit来退出 mosh 会话。


 
 
  1. $ exit

5、 mosh 支持很多选项,你可以用下面的方法看到:


 
 
  1. $ mosh --help

Mosh 选项

Mosh 选项

mosh 的优缺点

  • mosh 有额外的需求,比如需要允许 UDP 直接连接,这在 SSH 不需要。
  • 动态分配的端口范围是 60000-61000。第一个打开的端口是分配好的。每个连接都需要一个端口。
  • 默认的端口分配是一个严重的安全问题,尤其是在生产环境中。
  • 支持 IPv6 连接,但是不支持 IPv6 漫游。
  • 不支持回滚
  • 不支持 X11 转发
  • 不支持 ssh-agent 转发

总结

mosh是一款在大多数linux发行版的仓库中可以下载的一款小工具。虽然它有一些差异尤其是安全问题和额外的需求,它的功能,比如漫游后保持连接是一个加分点。我的建议是任何一个使用ssh的linux用户都应该试试这个程序,mosh值得一试。


本文来自云栖社区合作伙伴“Linux中国”,原文发布日期:2015-09-22  

目录
相关文章
|
11月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
935 3
Linux系统禁用swap
|
11月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1541 3
|
10月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
490 146
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
1020 3
Linux系统初始化脚本
|
11月前
|
安全 Linux Shell
Linux系统提权方式全面总结:从基础到高级攻防技术
本文全面总结Linux系统提权技术,涵盖权限体系、配置错误、漏洞利用、密码攻击等方法,帮助安全研究人员掌握攻防技术,提升系统防护能力。
1169 1
|
11月前
|
监控 安全 Linux
Linux系统提权之计划任务(Cron Jobs)提权
在Linux系统中,计划任务(Cron Jobs)常用于定时执行脚本或命令。若配置不当,攻击者可利用其提权至root权限。常见漏洞包括可写的Cron脚本、目录、通配符注入及PATH变量劫持。攻击者通过修改脚本、创建恶意任务或注入命令实现提权。系统管理员应遵循最小权限原则、使用绝对路径、避免通配符、设置安全PATH并定期审计,以防范此类攻击。
1443 1
|
Web App开发 安全 Linux
SSH工具客户端软件大全
SSH工具哪个好用?SSH是指安全外壳协议(Secure Shell),是一种加密的网络传输协议,使用SSH工具常用来远程登录系统和远程执行命令行。SSH客户端很多,码笔记分享SSH工具客户端软件大全,包括Windows系统和MAC系统下的SSH客户端软件: 关于SSH密匙可以参考:SSH密钥详解(生成方式、原理及限制),码笔记主要介绍SSH工具客户端大全: SecureCRT SecureCRT最初是Windows系统下的SSH、Telnet客户端和虚拟终端软件,现在SecureCRT已经支持Mac OS和Linux系统。
21147 0
|
安全 Linux Shell
Linux中SSH命令介绍
Linux中SSH命令介绍
959 2
|
监控 Linux 网络安全
FinalShell SSH工具下载,服务器管理,远程桌面加速软件,支持Windows,macOS,Linux
FinalShell是一款国人开发的多平台SSH客户端工具,支持Windows、Mac OS X和Linux系统。它提供一体化服务器管理功能,支持shell和sftp同屏显示,命令自动提示,操作便捷。软件还具备加速功能,提升访问服务器速度,适合普通用户和专业人士使用。
3826 0
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
642 10