Terowongan ssh otomatis

2

Saya mencari cara mudah untuk mengotomatisasi terowongan ssh saya.

Pada dasarnya saya ingin daemon lokal mendengarkan serangkaian port lokal. Jika satu program mengirimkan lalu lintas ke port itu, daemon harus memulai terowongan SSH dan meneruskan terowongan itu. Pada saat yang sama, terowongan itu akan kedaluwarsa setelah waktu tidak ada aktivitas dan menutup koneksi sampai waktu berikutnya permintaan dibuat.

Sejauh ini sebagian besar solusi yang saya lihat berusaha menjaga terowongan tetap terbuka. Namun saya hanya ingin terowongan ada secara otomatis hanya saat diperlukan.

SystematicFrank
sumber

Jawaban:

0

Anda dapat menggunakan skrip launchctl dan menambahkannya ke /System/Library/LaunchAemons/smtp.plist. Saat ini saya menggunakan ini untuk secara otomatis mengatur ssh tunnel untuk mengirim email. Script kemudian terlihat misalnya:

 <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST    1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
     <dict>
        <key>Label</key>
      <string>HOST.smtp</string>
    <key>ProgramArguments</key>
      <array>
        <string>/usr/bin/ssh</string>
        <string>-q</string>
        <string>-T</string>
        <string>-i</string>
        <string>/private/var/root/.ssh/smtpssh</string>
        <string>USER@EMAILHOST</string>
      </array>
    <key>Sockets</key>
      <dict>
        <key>Listeners</key>
          <dict>
            <key>Bonjour</key>
               <false/>
            <key>SockServiceName</key>
               <integer>PORT</integer>
            <key>SockType</key>
               <string>stream</string>
          </dict>
      </dict>
    <key>inetdCompatibility</key>
      <dict>
        <key>Wait</key>
          <false/>
      </dict>
  </dict>
</plist>

Tentu saja Anda harus menggunakan otentikasi kunci publik agar bisa berfungsi. Dalam .ssh/authorized_keysfile Anda harus mendefinisikan perintah seperti command="netcat smtp 25",no-X11-forwarding,no-agent-forwarding,no-port-forwarding <public key>pada baris kunci yang sesuai.

Kai Szuttor
sumber