SSHを使用してログインするポートをどのように決定しますか?

SSHを使用してログインするポートをどのように決定しますか?

しばらく前に設定したリモートで構成されたUbuntu 10.04サーバーがあります。ユーザー名とパスワードを記録したときによく使用されるSSHポートを22から別のものに変更するのに十分賢いようです。

そのポートが何であるかをどうやって知ることができますか?

ホスティング会社のバックドアを介してサーバーにアクセスできるため、任意のUnixコマンドを実行できます。しかし、私のコンピュータで通常のパテシェルを使ってログインすることはできません。

答え1

まず、設定ファイルにどのポートが設定されているかを確認してください。

$ sudo grep Port /etc/ssh/sshd_config
Port 22

次に、再起動して、sshこの構成がロードされたことを確認するか、ssh実行中のポートを確認してください。

$ sudo netstat -tpln | egrep '(Proto|ssh)'
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      12586/sshd

これはsshポート22での正常な動作です。

答え2

他の方法でサーバーにアクセスできる場合は、以下を実行してください。

$ sudo grep Port /etc/ssh/sshd_config 
Port NNN

これにより、上記のような行が返され、ここでNNN選択したポートになります。

答え3

より簡単な方法は、SSHサーバー構成ファイルを表示することです。

➜  ~  sudo grep Port /etc/ssh/sshd_config 
   Port 22

次のコマンドを使用して、各プロセスの受信ポートを確認することもできますlsof

sudo lsof -Pi | grep ssh

またはnetstat -lntu

答え4

サーバーコンソールへのアクセス権がない場合は、リモートホストのすべてのポートを調べる必要があります。これらのユーティリティは似ていますnmapが、ネットワーク層はホスト(IPアドレス)とポートの特定の組み合わせでトラフィックを中継する必要があります。

関連情報