sshを「指定した」ポートに接続する方法は?


56

sshするときに特定のポートに「接続」する方法を知っています。

ssh user@remotehostip -p XXX

しかし、特定のポートと「と」SSHを確立する方法はありますか?

ローカルコンピューターが使用するポートを指定する方法はありますか?


サーバーポートまたはクライアント受信ポートを変更するつもりですか?編集:OK、提案を削除しました。お気に入り。
ポリム14年

私は、クライアントのポートを指定したい
kwagjj

3
@kwagjjあなたはソースポートを意味しますか?そうでない場合は、送信元ポートを制御できません。
パトリック14年

回答:


15

それは簡単に不可能です。それをどのように行うことができるかは、ソースポートをどこで見るかによって異なります。ローカルでも、または外部ネットワークの観点から見れば適切なポートであれば十分でしょうか。

LXCコンテナでSSHクライアントを実行できます。私はそれをやったことがないので、詳細に説明することはできません。ただし、仮想ネットワークインターフェイスを作成し、このコンテナにアタッチして、sshこのインターフェイスが使用される唯一の(外部)インターフェイスであるため、このインターフェイスを使用します。

ホストシステムでは、このインターフェイスからパケットが来たことを検出できるはずです。したがって、NetfilterのNAT(SNAT)を使用して、次のようなソースアドレスを書き換えることができます。

iptables -t nat -A POSTROUTING -o vnet0 -p tcp --dport 22 -j SNAT --to-source :1234

もちろん、22以外のポートに接続する場合、これは機能しません(またはより複雑になります)。


1
おかげで...しかし、この情報は私のリーグから外れていると思います...しかし、まだ感謝しています:)しかし、私が本当にやっていることで行き止まりになった場合..おそらくこれに目を向けますもう一度答えてください:)
kwagjj 14年

ええ、その問題に関する情報を見つけるのは本当に難しいです。私はそれを見つけsshfs、誰かがこのコマンドで機能すると言ったが、信じられない。答えを見つけたら、私たちに知らせてください:)!
polym 14年

@kwagjj完全な(テキストモード)Linuxを実際のVMとしてインストールする方が(理解しやすい)簡単かもしれません。このVM(または特定のアカウント)をSSHのみに使用する場合、VM Netfilterでこれを行うことができます。
ホークレイジング14年

6

お探しのコマンド構文はおそらくこれです。ssh -p XXX user @ remotehostipオプションの順序を変更する必要があります。今すぐ試してください、それは私のために動作します。宜しくお願いします。


2

ルーターを介してポート転送を行う場合の簡単な解決策は、インバウンドポートを任意に設定し、ローカルポートを22に設定することです。マシンは通常どおり22でssh接続を使用しますが、実際にはネットワークの外部から接続します着信ポートを使用します。22でボットがマシンを叩くのを止めようとしているだけなら、これでうまくいくはずです。

これはあなたの特定の問題には役立たないかもしれませんが、多くの人々がこの理由でここに来ると想像します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.