22以外のポートでSSHを実行するにはどうすればよいですか

私は同じルータの後ろに二つのコンピュータを持っています。 それらをAとBと呼びましょう。

Aは次の方法でBにSSHできます: ssh usr@<internal ip of computer>

Bは同じことを実行してAにSSH接続できますが、外部IPを使用する必要があります。 私はルータのポート22をコンピュータAのIPに転送したので、すべてが私には理にかなっています。

ただし、ポート26をコンピュータBに転送し、両方に外部IPを使用してネットワーク外からSSHを転送しますが、ポート22または26のいずれかを指定して、使用す

私はの出力を通してポート26を許可しようとしました iptables AとBの入力では、それはうまくいかないようでした。 また、Aの22と同様に、ポート26をbの内部IP(ルータを介して)に転送しました。

外部IPとポート26を使用してAからBにSSHしようとすると、次のようになります:

ssh: connect to host xx.xx.xxx.xx port 26: Connection refused.

バージョン:

  • A=Openssh_5.9p1Debian-5ubuntu1,OpenSSL1.0.1 14Mar2012
  • B=Openssh_6.0p1Debian-4,OpenSSL1.0.1c10May2012

Aには12.04Ubuntuがあり、BはRaspbianを搭載したRaspberry Piです。

編集:私が置くのを忘れていた何か:私はSSH設定ファイルを切り替えてみました(私はそれがあることがわかりました /etc/ssh/ssh_config)コメントを解除しました(削除しました) #)とのライン Port そして変更されました 2226. それは私にまだ接続拒否メッセージを与えました。 (私は無駄に再起動しました。)

Linuxシステムを使用していて、ポート26のSSHサーバーに接続する場合は、次のコマンドを使用できます。

ssh user@192.168.1.1 -p 26

メモ:

  1. Server IPを、ご使用のサーバのIPアドレスまたはDNS名に置き換えます。
  2. 設定したとおりにポート番号を変更します。
  3. カスタムポートSSHを使用している場合、ファイアウォール上の送信、受信接続には同じポートがほとんど許可されます。

2番目のマシンのポート26でSSHを実行していないようです。 そのマシンのポート番号を26に変更できます。

どちらかの編集 /etc/ssh/sshd_config &SSHを再起動することを忘れないでください(service sshd restart)または22にそれを残しますが、第二のマシン上のポート22にルータ上のポート26を転送します。 また、接続を許可するために、第二のマシン上の任意のファイアウォール設定を変更することを忘れないでください。

イントラネットsshアクセスにのみポート22を使用します。

インターネット経由でのアクセスには、カスタム(珍しい)ポートを使用します。これは、"よく知られているユーザー名"のポート22をスキャンしているスクリプトの子供たちによって生成された負荷を軽減する利点があります。

その 外付け sshdプロセスは以下によって制御されます xinetd と並行して実行されている 内部 sshd process.In 次の例では、ポート12345を使用します:

これをシステム上で利用可能な任意の空きポート番号に自由に変更できます。たぶん、より高い値は、このポートがによってスキャンされていることも少し可能性が低いようになります "クイックポートスキャン".

その xinetd 設定は:

service ssh-external{    socket_type = stream    wait = no    protocol = tcp    type = UNLISTED    user = root    server = /usr/sbin/sshd    server_args = -i -f  /etc/ssh/external-sshd.config    port = 12345    log_on_failure += USERID}

ファイル /etc/ssh/external-ssdh.config あなたのいつものコピーにすることができます sshd 設定。次の文が構成されていることを確認します:

Port 12345AddressFamily inet

また、公開鍵認証を強制し、インターネットアクセスのパスワード認証を無効にすることをお勧めします:

PasswordAuthentication noPermitEmptyPasswords noChallengeResponseAuthentication no

リッスンポートは、IPアドレスにハードリンクすることもできます

/etc/ssh/sshd_config:

ListenAddress 10.10.10.10:22ListenAddress 20.20.20.20:4444

私がで説明したように 関連する回答、sshクライアントは、URI形式を次のように指定できます ssh://user@host:1234. 例えば:

ssh  ssh://myuser@mydomain.com:2222

ここで、2222はポート番号です。 代わりに使用するポート番号を代わりに使用します。 もちろん、指定されたポートに接続するには、sshサーバー(接続しようとしているホスト上)が最初に指定されたポートでリッスンする必要があることに注意し

デフォルトポート(TCP/22)でsshを実行することはお勧めできませんが、WAN IP22からLAN IP上のssh-serverを使用しているポートに転送することもできません。

Ssh-serverを指定されたポートでリッスンさせるには、次の操作を行います

  1. 上で編集 /etc/ssh/sshd_config (に注意してください。 d)から #Port 22Port 26. すなわち、コメントを解除し、ポートを変更します。 より良い26 何かになります ランダムに上に (6553542895
    に変更することも検討してください。 PermitRootLogin no.

  2. 設定をテストするには sshテストモード

    sudo sshd -t
  3. Ssh-serverサービスの再起動

     sudo systemctl restart sshd.service

その後、ssh-clientから接続することができます

ssh user@serverNameOrIP -p 42895

ボーナス: mosh

Moshパッケージがサーバーにインストールされている場合は、次を使用します

mosh --ssh="ssh -p 42895" serverNameOrIP

/Etc/ssh/ssh_config_はsshクライアントの設定であることに注意してください。 ここで、/etc/ssh/sshd_config_はsshデーモンの設定です。

Yuu ohave SSHは2番目のマシンのポート22または26で実行されていますか?