Bagaimana cara menjaga terowongan ssh tetap hidup menggunakan launchd?

3

Saya ingin menjaga terowongan ssh tetap hidup. Di bawah ini adalah file daftar agen peluncuran saya tetapi hanya membuat terowongan paling banyak satu atau dua hari. Saya menggunakan OS X 10.10.3.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
        <dict>
                <key>Label</key>
                <string>com.my.ssh_tunnel</string>
                <key>ProgramArguments</key>
                <array>
                        <string>/usr/bin/ssh</string>
                        <string>-R 0.0.0.0:22221:localhost:22</string>
                        <string>-NTC</string>
                        <string>-f</string>
                        <string>-o ExitOnForwardFailure=yes</string>
                        <string>-o ServerAliveInterval=60</string>
                        <string>[email protected]</string>
                </array>
                <key>RunAtLoad</key>
                <true/>
                <key>KeepAlive</key>
                <true/>
        </dict>
</plist>
wkmor1
sumber

Jawaban:

2

Saya pikir Anda perlu menambahkan "ServerAliveCountMax". Karena Anda tidak menetapkannya secara default ke 3. Cobalah mengaturnya ke sesuatu yang lebih tinggi dari 3 dan lihat apakah itu menghidupkan kembali beberapa masalah Anda. Dalam kasus Anda itu akan terputus jika server tidak responsif selama 180 detik.

Dari halaman ssh man:

 ServerAliveCountMax:

     Sets the number of server alive messages (see below) which may be
     sent without ssh(1) receiving any messages back from the server.
     If this threshold is reached while server alive messages are
     being sent, ssh will disconnect from the server, terminating the
     session.  It is important to note that the use of server alive
     messages is very different from TCPKeepAlive (below).  The server
     alive messages are sent through the encrypted channel and there‐
     fore will not be spoofable.  The TCP keepalive option enabled by
     TCPKeepAlive is spoofable.  The server alive mechanism is valu‐
     able when the client or server depend on knowing when a connec‐
     tion has become inactive.

     The default value is 3.  If, for example, ServerAliveInterval
     (see below) is set to 15 and ServerAliveCountMax is left at the
     default, if the server becomes unresponsive, ssh will disconnect
     after approximately 45 seconds.  This option applies to protocol
     version 2 only.
tron_jones
sumber
Sejauh ini baik. Terowongan tetap dibuka selama 5 hari terakhir.
wkmor1