Saya telah membuat file plist untuk menggantikan proses xinetd yang berhasil saya gunakan di Windows (Cygwin) dan Linux untuk mengalirkan koneksi imapd dari server jarak jauh melalui ssh
pada port di localhost.
The plutil
perintah mengatakan konfigurasi saya adalah OK. launchctl load path-to-plist
berjalan tanpa kesalahan.
Ketika saya menjalankan launchctl list
agen tidak ditampilkan. Ketika saya mencoba untuk terhubung ke port di localhost, koneksi saya ditolak.
Ini file plist saya:
<?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>Program</key>
<string>/usr/bin/ssh</string>
<key>ProgramArguments</key>
<array>
<string>-F /Users/userx/.ssh/config</string>
<string>dname /usr/sbin/imapd</string>
</array>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>dname-imapd</string>
<key>SockType</key>
<string>stream</string>
<key>SockProtocol</key>
<string>TCP</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Disabled</key>
<false/>
<key>Wait</key>
<false/>
</dict>
<key>EnvironmentVariables</key>
<dict>
<key>SSH_AUTH_SOCK</key>
<string>/Users/userx/.ssh-agent.sock</string>
</dict>
</dict>
</plist>
Saya telah menambahkan baris ke / etc / services untuk dname-imapd dan port yang belum ditetapkan (49022). Pada akhirnya saya akan menggunakan ini bersama dengan ssh-agent (untuk membuat ini berfungsi 'tanpa kata sandi') dan Thunderbird untuk mengambil email dari sistem yang sangat terkunci.
Pada dasarnya ada dua pertanyaan di sini. Satu, bagaimana saya tahu agen saya sedang dimuat (dan bagaimana saya mengkonfirmasi itu)? Dua, apakah plist-ku benar?
Ini konfigurasi xinetd asli saya :
service imapssh
{
disable = no
type = UNLISTED
port = 2208
socket_type = stream
protocol = tcp
wait = no
server = /usr/bin/ssh
server_args = dname /usr/sbin/imapd
user = userx
}
Terima kasih atas bantuannya. Ini membuatku sedikit gila.
Ini ada di El Capitan Macbook Pro.
Juga, saya sudah mencoba terowongan ssh lurus tapi itu tidak benar-benar berfungsi (sebelum ada yang menyarankan). Kecuali ada yang tahu cara membuatnya seperti inetd dan spawn setiap kali klien email terhubung ke port.
ProgramArguments
harus dibagi menjadi 4<string>…</string>
, satu untuk masing-masingargv[i]
, sebagai<string>-F</string>…
.