リモートサーバーにSSHを接続すると「要求されたアドレスを割り当てられません」エラーが発生する

リモートサーバーにSSHを接続すると「要求されたアドレスを割り当てられません」エラーが発生する

Ubuntu 14.04でopensshをインストールし、SSHポートを変更しました。 LAN内部では問題なくログインできますが、外部では接続できません。

また、ファイアウォールを介して許可し、linksysルータでポート転送を設定しました。

ログインするたびにエラーが発生します(数字の代わりに#を置き換えました)。

ssh: connect to host #.#.#.# port #: Can't assign requested address

他に何が確認でき、何が間違っている可能性がありますか?助けてください。

答え1

私には、IPv6の代わりにIPv4を使用するためにSSH用のキーを使用するのが役立ちました。

ssh -4 .... 

答え2

他の理由があるかもしれません。

まず、SSHサーバーが正しいIP /インターフェースを受信して​​いるとします。とにかくこれを確認する簡単な方法はSSHサーバーに入力することです。

netstat -putan |grep ssh

またはOSの種類/バージョンに応じて:

ss -putan |grep ssh

正しいインターフェイスで受信している場合は、SSHサーバーがtcp、tcp6、またはその両方で受信していることを確認してください。

場合によっては、tcpとtcp6の両方を聞くと問題が発生する可能性があります(つまり、IPv4とIPv6を聞くことを意味します)... SSH設定ファイルを編集するだけでIPv4を聞くことができます。/etc/ssh/sshd_config値を追加/編集します。

AddressFamily inet

これを変更したら、SSHサーバーを再起動する必要があります。

この場合、SSH接続がなくてもターゲットIPでpingを行うことをお勧めします。応答が受信されない場合は、両側のIP /マスクテーブルとルーティングテーブルを確認してください。ルーティングテーブルは、次の命令で確認できます。

ip route

答え3

IPv6を無効にするためのクライアントオプションとして設定できます。

~/.ssh/config

Host *
    AddressFamily inet

関連情報