plistファイルを作成して、Windows(Cygwin)およびLinuxで正常に使用してlocalhostのポート経由でリモートサーバーからimapd接続をストリーミングするxinetdプロセスを置き換えました。ssh
plutil
コマンドは、私の設定がOKであると言います。launchctl load path-to-plist
エラーなしで実行されます。
launchctl list
エージェントを実行しても表示されません。ローカルホストのポートに接続しようとすると、接続が拒否されます。
これが私のplistファイルです。
<?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>
dname-imapdおよび未割り当てポート(49022)の行を/ etc / servicesに追加しました。最終的には、これをssh-agent(この機能を「パスワードなし」にする)およびThunderbirdと組み合わせて使用して、非常にロックダウンされたシステムからメールを取得します。
ここには本質的に2つの質問があります。1つは、エージェントがロードされていることをどのように確認するか(およびそれをどのように確認するか)。2、私のplistは実際に正しいですか?
オリジナルのxinetd設定は次のとおりです。
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
}
助けてくれてありがとう。これは私を少し夢中にさせています。
これはEl Capitan Macbook Proにあります。
また、私はまっすぐなsshトンネルを試しましたが、実際には機能しません(誰かが提案する前)。メールクライアントがポートに接続するたびにinetdおよびspawnのように動作させる方法を誰かが知らない限り。
ProgramArguments
4に分割されるべき<string>…</string>
それぞれについて、1argv[i]
として、<string>-F</string>…
。