
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