最近、Ubuntu Server 12.04(Precise Pangolin)をインストールし、主にファイルサーバーとして使用する予定です。私はLinuxを初めて使用するので、これは非常に大きな学習曲線です。昨日、Windows 7マシンでSSHキーペアを使用して PuTTY を構成し、デスクトップからUbuntu Serverを管理できるようにしました。両方のマシンが同じネットワーク上にある場合、これは正常に機能します。
私のラップトップ( MacBook Air )の場合、同じネットワーク上にあるとは限りません。ラップトップが別のネットワーク上にある場合、SSHを介してラップトップからUbuntuサーバーに接続できますか?
サーバーのホスト名がLANでブロードキャストされるようにavahiデーモンをインストールし、ルーターが常に同じIPアドレスをサーバーに割り当てるようにルーターを構成しました。それとは別に、サーバーにインストールした唯一のものは OpenSSH です。ここでは、パスワードペアを無効にして、キーペアを使用してのみ接続できるようにします。
私は自分のラップトップの端末から次のようなことができると思いました。
ssh my.external.ip.address [email protected]
そのコマンドを試みると、エラーが発生します。
ssh:ホストmy.external.ip.addressポート22に接続:操作がタイムアウトしました
私も試しました
ssh my.external.ip.address [email protected]
以前と同じエラーメッセージが表示されます。だからそれは私がやろうとしていることのアイデアをあなたに与えるはずですが、これは可能ですか、もしそうなら、どうすればいいですか?
ラップトップからsshを介して外部接続をセットアップできると仮定すると、ISPが外部IPアドレスを変更し、外部接続が切断される可能性があります。つまり、ISPが外部IPアドレスを変更しても、新しい外部IPアドレスが何であるかを知らなくてもサーバーにリモートで接続できます。
まず、正しいコマンドは次のとおりです。ssh [email protected]
また、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 [email protected]
サーバー上:
Sudo less /var/log/auth.log
必要に応じて、ルーターのログも確認できます。
オンラインポートスキャナーを次に示します。 https://www.grc.com/x/ne.dll?bh0bkyd2
nmapなどのツールも使用できると思いますが、私はまだそれらに精通していません。
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.x.xのようなものです。
別の方法と他のOSソリューション:
2)ルーターにローカルに接続されているコンピューターを使用して、以前に見つかったIPにアクセスします(例: http://192.168.1.1 経由)。これにより、ルーター構成インターフェイスが表示されます。
3)次の手順は、ルーターによって異なります。たとえば、OpenWRTを使用したルーターでの方法は次のとおりです。
Ubuntu(デスクトップ)のデフォルトでは、SSHはインストールされていません。
ターミナルで次のコマンドを使用してインストールできます。
Sudo apt-get install openssh-server
サービスをインストールしてすぐに開始する必要があります。