Time to say goodbye SSH

2 minute read

Published:

Introduction

Có một ngày nọ, bạn đang đọc file log trên server theo thời gian thực, thì bỗng dưng mất kết nối mạng, bạn không thể tiếp tục monitor log nhưng đồng thời cũng không thể thoát ra. Rồi bạn nhanh trí nhấn tổ hợp phím Ctrl CCtrl D nhưng chỉ nhận được cùng chung một kết quả, đó là sự không phản hồi của SSH session. Và thật may mắn, bạn chỉ cần làm theo các bước sau là có thể kết thúc SSH session hiện tại:

  1. Press Enter

  2. Press shift ~

  3. Press .

Nhưng bạn chợt nhận ra, bây giờ nếu muốn xem log tiếp thì phải ssh để vào lại à?

Chả thế, bởi vì đơn giản chúng tôi chỉ là SSH. Xem log chỉ là một tác vụ đơn giản và phổ biến, nhưng nếu như trong trường hợp mỗi lần mất mạng, việc bạn phải kết nối lại rồi thực hiện rất nhiều thao tác khác nhau để có thể quay trở lại/tái hiện tại đúng bối cảnh mà bạn đã ở đó trước khi mất kết nối thì có vẻ không vui chút nào, nhỉ ? Tỉ như bạn đang quan sát một tiến trình quan trọng thì mất mạng cái rụp, bạn switch wifi chỉ mất 5s để lại có mạng, nhưng mất 5p để vào xem lại tiến trình đó đang chạy như thế nào thì phát hiện ra tiến trình đã kết thúc vào 1 phút trước. Đến đây nếu bạn nghĩ rằng, trên thế giới kiểu gì cũng có người từng gặp phải hoàn cảnh giống mình và chắc hẳn đã tìm ra giải pháp (tự động reconnect sau khi có mạng trở lại chẳng hạn) thì xin chúc mừng bạn, bạn đã đúng. Chào mừng bạn đến với MOSH (MObile SHell), một công cụ giúp bạn giải quyết gần như triệt để vấn đề trên.

Mosh

  • Install
    sudo apt update
    sudo apt install mosh
    
  • Để truy cập vào server sử dụng MOSH thì bạn cần cài MOSH lên máy local của bạn và trên cả server nhé. Cú pháp truy cập thì tương tự ssh như sau:
    mosh <username>@<ip>
    
  • Với MOSH thì trong trường hợp bạn đang xem file log theo thời gian thực của một server, bạn ngắt mạng và đóng máy lại đi về nhà, thì khi về chỉ cần mở máy lên, kết nối VPN thì bạn vẫn xem được nội dung file log tại thời điểm hiện tại mà không cần thêm một thao tác thừa nào. Quả là vô cùng tiện lợi.

Notes

  • Bên cạnh MOSH thì ET (Eternal Terminal) cũng là một lựa chọn đáng giá. Đặc biệt Mosh sẽ tuyệt vời hơn nếu tích hợp dùng Tmux, một terminal multiplexer mà có thể mình sẽ giới thiệu trong những bài viết sắp tới.

Reference

  • https://chadsmith-software.medium.com/what-could-be-better-than-ssh-e69561ec1b83
  • https://www.cyberciti.biz/faq/openssh-linux-unix-osx-kill-hung-ssh-session/

Thank for reading.