Ssh 写入失败:管道断开

Ssh 写入失败:管道断开,ssh,terminal,Ssh,Terminal,我有一个无头Ubuntu服务器。我从Mac上通过SSH在服务器上运行了一个命令(snapraid sync)。司令部说大约需要6个小时,所以我留了一夜 今天早上我下来时,Mac上的终端说:“写失败:管道破裂” 我不确定命令是否完全执行。这是超时问题吗?如果是这样,我如何让SSH连接在一夜之间保持活动状态?这应该可以解决Mac osX版本10.8.2的问题 加: 要删除此文件,请执行以下操作: ~/.ssh/config 或者,如果希望它是SSH客户端中的全局更改,则 /private/etc/

我有一个无头Ubuntu服务器。我从Mac上通过SSH在服务器上运行了一个命令(snapraid sync)。司令部说大约需要6个小时,所以我留了一夜

今天早上我下来时,Mac上的终端说:“写失败:管道破裂”


我不确定命令是否完全执行。这是超时问题吗?如果是这样,我如何让SSH连接在一夜之间保持活动状态?

这应该可以解决Mac osX版本10.8.2的问题

加:

要删除此文件,请执行以下操作:

~/.ssh/config
或者,如果希望它是SSH客户端中的全局更改,则

/private/etc/ssh\u config

“ServerAliveInterval 120”基本上是指每隔120秒用一个空数据包“ping”服务器,“TCPKeepAlive no”意味着不设置SO_KEEPALIVE套接字选项(因为在ServerAliveInterval已经设置的情况下,您不应该需要它,显然这是“欺骗”或一些奇怪的事情)

服务器同样可以设置相同的效果(ClientKeepAliveInterval),但通常您无法控制这些设置。

您可以使用“screen”util进行设置。只需通过SSH连接到服务器,通过“screen”命令执行启动screen会话,在那里启动命令并断开连接(不要退出screen会话)。当您认为您的命令已经完成时,您可以连接到服务器并连接到屏幕会话,在那里您可以看到命令执行结果/进度(如果需要)


有关更多详细信息,请参阅“人机界面”。

我建议使用tmux,而不是screen,它(可以说)比screen更好

tmux new-session -s {name}
该命令创建一个会话。在此之后的任何时间,您都希望连接:

tmux a -t {name}

有两种解决方案

  • 更新服务器并重新启动服务器sshd
  • echo“ClientAliveInterval 60”| sudo tee-a/etc/ssh/sshd_config

  • 更新客户端

  • echo“ServerAliveInterval 60”>~/.ssh/config
    jeremyforan的答案是正确的,但是我发现如果您试图使用scp则必须显式地将其指向按所述配置的配置文件,它似乎不遵守正常的配置层次结构。例如:

    scp -F ~/.ssh/config myfile joe@myserver.com:~
    

    有效,但省略-F仍然会导致管道破裂错误。

    这应该可以解决ubuntu和linux mint的问题 加:


    /etc/ssh/ssh_配置文件

    我使用带有两条互联网输入线的ASUS路由器。我将我的IP指定到某一行,它可以工作。

    在尝试更改sshd_config中的许多上述参数(ClientLiveInterval、ClientMaxCount、TCPKeepAlive…)后,没有任何更改。我花了数小时和数天的时间在论坛和博客上寻找解决方案

    似乎是由于ChrootDirectory上的权限设置导致管道破裂,从而禁止与ssh/sftp连接。 ChrootDirectory必须由root/root拥有755权限 下权限765/766/775。。。不起作用,但强者起作用(如700) 如果需要向连接的用户授予写入权限,可以在子目录中授予。 如果chroot属于sftpUser:sftpGroup,那么它也不会工作

    chroot-> root:root 755
    | 
    ---subdirectories-> sftpUser:sftpGroup 700 up to 770 
    

    如果您在编辑/etc/ssh/sshd_config或~/.ssh/config后仍有问题,希望它能对您有所帮助 您的计算机上根本不存在,因此我强烈建议重新安装ssh。这个解决方案花了大约一分钟的时间来找出“断管”错误和“被远程主机关闭”错误

    Ubuntu:

    ssh-o ServerAliveInterval=5-o ServerAliveCountMax=1user@x.x.x.x

    @GarryTanks。看起来我的服务器将睡眠并导致问题。让我们知道你是否面临任何问题:)@ GarryIf,你只需要命令完全执行,考虑使用NoHUP:<代码> NoHop-SNAPRAID同步> SnAPRAID.OUT和<代码>。然后,您可以关闭终端,该命令将继续在服务器上运行。命令的输出附加到snapraid.out。从thunderbolt拔下笔记本电脑时,仍然会收到相同的消息。@Ava这是因为您断开了网络连接。SSH连接只有在您不这样终止的情况下才能保持活动状态。我需要重新启动Mac吗?我在Yosemite上更改了ssh_config文件并启动了一个新的ssh会话,但仍然出现了错误。+1在技术上并不能解决这个问题,但对用户来说可能是更好的解决方案。我认为在某些情况下它确实是更好的解决方案。例如,您不希望为了在远程主机上运行命令而让客户端主机保持运行。另一个例子是坏连接。我想你的意思是在Ubuntu端有一个很好的例子?是的,特别是在Beowulf中充当服务器的机器。所有的机器都在运行18.04。
    ServerAliveInterval 120
    TCPKeepAlive yes
    
    chroot-> root:root 755
    | 
    ---subdirectories-> sftpUser:sftpGroup 700 up to 770 
    
    sudo apt-get purge openssh-server
    
    sudo apt update
    
    sudo apt install openssh-server