web-dev-qa-db-ja.com

指定したポートからsshに接続する方法は?

Sshを使用して特定のポートに「接続」する方法を知っています。

ssh user@remotehostip -p XXX

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

61
kwagjj

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

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

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

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

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

17
Hauke Laging

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

6
Rafael Garcia

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

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

2
Stoopkid

-Z portnumオプションを提案しました...

ここにソース: https://github.com/Zibri/openssh-portable

そしてここにプルリクエストがあります: https://github.com/openssh/openssh-portable/pull/1

0
Zibri