Linuxオペレーティングシステムの古い(2001?)スクリプトで-P
コマンドオプションが使用されている状況が発生しましたssh
。
$ ssh -P host.domain -l user
ただし、マニュアルページにはオプションssh
に関する言及はありません。-P
ただし、実行するとssh -P host.domain
警告やエラーは表示されません。
それは何ですか?おそらく、古いまたは文書化されていないオプションでしょうか?
答え1
以前のバージョンのマニュアルページ:
-血
権限のないポートを使用してください。この方法では、rhosts認証またはrsarhosts認証を使用できませんが、特権ソースポートを許可しないファイアウォールをバイパスするために使用できます。
[...]
特権ポートの使用
相手に接続するときに特権ポートを使用するかどうかを指定します。 rhosts認証またはrsarhosts認証が有効になっている場合、デフォルトはyesです。
ソースコードから直接:
case 'P': /* deprecated */
options.use_privileged_port = 0;
break;
とにかくデフォルトのように0にオプションを設定するので、何もしません。廃止されたオプションを無視すると、機能に影響を与えずに以前のバージョンとの互換性を高めるのに役立ちます。
この/* deprecated */
変更は2002年9月4日から遡及的に適用されます。
上記で引用したコード(openssh-portable 7.7で)もほぼ同じです。最近コミットから削除されました:
アップストリーム: UsePrivilegedPort サポートの中止
ssh(1) setuid 実行のサポートが削除されました。サポートコードを削除し、マニュアルページからそれへの参照を消去します。
2002年以降、ssh(1)にsetuidビットを提供していません。誰かが実際に低いポート番号で接続を確立する必要がある場合は、小さなsetuid ProxyCommandを介してこれを行うことができます。
わかりました、マーカス@jmc@djm@
OpenBSD-コミット-ID: d03364610b7123ae4c6792f5274bd147b6de717e
それでもオプションは無視されますが、一致する内部変数を設定しなくなりました。