まず、正しいコマンドは次のとおりです。
ssh user@my.external.ip.address
また、SSHポート22をサーバーのローカルIPアドレスに転送するようにルーターを構成する必要があります。
さらにデバッグするには:
1)サーバーとルーターでポート22(SSH)が開いていることを確認します(ポート転送)。
2)SSHサーバーがサーバーで実行されていることを確認します
3)接続中にを使用してping
、接続に関するその他の問題をデバッグします。ssh -v
/var/log/auth.log
1)ルーターで:ルーター固有の指示に従います
サーバー上:(sudo ufw status
別のファイアウォール構成ユーティリティを使用する場合を除く)またはsudo iptables -L
(一般的な方法、ただし複雑な出力)
ポート22を開くには: sudo ufw allow 22
cf https://help.ubuntu.com/12.04/serverguide/firewall.html
2)インストールされていることを確認します。 dpkg -l openssh-server
実行されていることを確認します:service ssh status
またはps aux | grep sshd
3)接続クライアントで:
ping my.external.ip.address
ssh -v user@my.external.ip.address
サーバー上:
sudo less /var/log/auth.log
必要に応じて、ルーターのログも確認できます。
オンラインポートスキャナーは次のとおりです。https://www.grc.com/x/ne.dll?bh0bkyd2
nmapなどのツールも使用できると思いますが、私はまだそれらに精通していません。
変化する外部IPアドレスへの対処:
1)dynDNSまたは同様のアカウントを取得します:http ://dyn.com/dns/
ダイナミックDNSプロバイダーのリスト:
2)別の解決策は、crontabジョブを設定することです。これは、定期的に外部IPアドレスをメールで送信するか、dropboxなどのオンラインストレージサービスに投入します。
私の友人が使用しているスクリプトは次のとおりです。
#!/bin/bash
# Bash script to get the external IP address
MYWANIP=$(curl http://mire.ipadsl.net | sed -nr -e 's|^.*<span class="ip">([0-9.]+)</span>.*$|\1| p')
echo "My IP address is: $MYWANIP"
IPold=$(cat /home/USER/Dropbox/test.txt)
echo "Previous IP Address: $IPold"
if [[ $IPold != $MYWANIP ]] ;
then
echo "New IP"
rm /home/USER/Dropbox/test.txt
echo $MYWANIP >> /home/USER/Dropbox/test.txt;
echo $MYWANIP;
else
echo "Same IP";
fi
# example crontab entry:
## m h dom mon dow command
## */10 * * * * /home/USER/Dropbox/test_ip.sh
ルーターのポート転送:
1)まず、次を実行して、ルーターのローカルIPアドレスを見つけます。
ip route | grep default
通常、192.168.xxのようなものです
別の方法と他のOSソリューション:
2)ルーターにローカルに接続されているコンピューターを使用して、以前に見つかったIPにアクセスします。たとえば、http://192.168.1.1を使用します。これにより、ルーター構成インターフェイスが表示されます。
3)次の手順は、ルーターによって異なります。たとえば、OpenWRTを使用したルーターでの方法は次のとおりです。
https://newspaint.wordpress.com/2012/08/26/how-to-add-a-port-forward-using-the-web-interface-on-openwrt-10-03-1/