ssh连接远程服务器中途断开

问题描述

Mac机器使用ssh操作远程服务器的途中,由于网络波动,断开连接,休眠等一系列奇葩原因导致终端client_loop: send disconnect: Broken pipe,
在这样的情况下,远程服务器也跟着掉线。

需求

即使本地Mac掉线,远程服务器仍旧保持工作

解决方式: Screen

  1. 连接远程服务器
    binzhang@MacBin ~$ ssh username@servername

  2. 创建名为cskg的screen, 此时screen被创建,之后的代码或者各种工作在该screen下操作
    [servername ~]$ screen -S cskg

  3. 万一本地机器掉线,重新连接远程服务器,随后使用screen -ls 查看之前创建的screen信息

    1
    2
    3
    4
    5
    [servername ~]$ screen -ls  
    显示信息:
    There is a screen on:
    157586.cskg (Attached)
    1 Socket in /var/run/screen/xx
  4. 使用-r回到之前服务器工作的screen
    screen -r 157586

Screen常见问题

使用screen -ls, 显式当前状态为Attached,但并没有没有用户登陆该screen。screen此时正常状态应该为(Detached)使用 screen -r <session-id>无法连接,

解决方案:screen -D -r <session-id>,-D -r 表示先踢掉前用户,再登陆。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!