ホームネットワークからSSHを使用する方法


15

最近、Raspberry PiでSSHをセットアップしました。特にServer Auditorアプリを使用して、iPhoneからコンピューターを制御できるようになってから、泳いでいます。残念ながら、これはローカルネットワークを介してのみ機能します。

外出中にSSHを機能させるにはどうすればよいですか?(できればアプリで動作します。)


ルーターからポートを転送できますか?
スティーブアーウィン

1
@SteveIrwin私はできる可能性が高いですが、私はネットワークに関する知識がないため、Port Mapなどの簡単なソリューションを好むでしょう。実際... MacのインターネットをPiと共有する場合、転送されたポートを共有できますか?
xxmbabanexx

ポートフォワードを設定することは、おそらく少なくともポートマップを使用するのと同じくらい簡単です。LANの設定方法について詳しく説明する必要があります
ジョンラルーイ

あなたの最善の策は、Weavedサービス(www.weaved.com)をインストールし、それを行うことです。インターネットで見つかる他のすべてのチュートリアルは、あなたをイライラさせる道に導きます。
イゴールガナポルスキー

socketxpの使用を示唆する投稿では、次を使用してRPI curlでsocketxpをダウンロードします。-O portal.socketxp.com/download/arm/socketxp && chmod + wx socketxp && sudo mv socketxp / usr / local / binファイル。
ジョンフン

回答:


20

ここに、私が(debianで)使用した手順を示します。

1. Piの静的IPを設定します。

コマンドを使用してインターフェイスファイルを開きます

sudo nano /etc/network/interfaces

b。interfacesファイルを次のように変更します(いくつかの行を除外できるかどうかはわかりません)。

auto lo
iface lo inet loopback
iface eth0 inet static
address 192.168.1.2  #static ip you want for the pi
netmask 255.255.255.0
gateway 192.168.1.1    # the ip address of the router

c.Check IPが使用して変更された場合のifconfigコマンドを

2.動的DNSのセットアップ

ほとんどの場合、ISPによって割り当てられたIPアドレスは動的であるため、IPアドレスの変更を解決する方法が必要です。これを実現するには、dnsdynamicおよびddclientソフトウェアを使用します。どちらも自由に使用できます。

持つアカウントのa.Signアップdnsdynamic

b.Add list.Youから新しいドメインと名前を選択し、ドメインが上subdomain.Clickのあなたの選択で利用可能なドメインのいずれかを選択することができ、チェック在庫状況と、その後に追加します

dnsdynamicスクリーンショット

3. Piでのddclientの設定

a。コマンドを使用してddclientをインストールする

sudo apt-get install ddclient

b。次のコマンドを使用してddclientの構成ファイルを開き、次の行を追加します。

sudo nano /etc/ddclient.conf

ファイルを次のように変更します。

# /etc/ddclient.conf
daemon=600
timeout=10
ssl=yes
protocol=dyndns2
use=web, web=myip.dnsdynamic.com
server=www.dnsdynamic.org
login=x@gmail.com  #userid for dnsdynamic.com
password='xxxx'      #password for the same put inside quotes
x.dnsdynamic.com  #the domain name you created

ファイルを保存します。

d。リブート時にddclientサービスが自動的に開始されるようにしたいので、次のようにします。

sudo nano /etc/rc.local

exit 0(最後の行)の前に次のコマンドを追加します

sudo /usr/sbin/ddclient -daemon 600 -syslog

ファイルを保存します。ddclientを起動するには、piを再起動するか、プロンプトで上記のコマンドを実行します。必要に応じて、現在のIPアドレスを変更してドメイン名を更新します。

4.ポート転送

a。ルーターのモデルを見つけます。

b.portforward.comに移動します

c。ルーターのブランドとモデルを入力して、転送ポートに関する詳細なガイドを見つけます。

d。ルーターのブランドとモデルを選択した後、リダイレクトされたページからデフォルトガイドをクリックします。

e。静的IPテキストボックスに、ステップ1で指定したPiの静的IPを入力します。

f。手順に従い、ポート22を転送します。ソースポートは22である必要があり、宛先ポートは何でも構いません。港。

チュートリアルに従っている場合は、IPアドレスをドメイン名に置き換えて、どこからでもpiにログインします。例:pi@hometorrent.dnsdynamic.com:22を使用してpiにsshします。


本当にありがとう!エクセターの訪問から戻ったら、これを試してみます!
xxmbabanexx

1グレート答え、しかし、あなたが本当に使用する必要があるんsudoでは/etc/rc.local、すでにrootとして実行しているということではないでしょうか?
HeatfanJohn

したがって、NgrokとWeavedの構成は完全に台無しになりました。今、私はまったく接続できません!
イゴールガナポルスキー

2

まず、ポート転送を設定します。各ルーターはわずかに異なるため、ルーターの詳細を調べる必要があります。ほとんどのルーターで機能
する一般的なポート転送のハウツーガイドがありますが、実際のルーターモデルのガイドを見つけることをお勧めします。

23456などのように、覚えやすいポートを設定してラズベリーパイにリンクします。一般的なポート番号を上書きしないように注意してください。

最後に、sshを使用して以下を実行します。

$ ssh -p 23456 user@IP

どこ:


カスタム23456の代わりにポート22を使用できないのはなぜですか?
イゴールガナポルスキー

1
@IgorGanapolskyはそれを行うことができますが、1)あなたの家の外にSSH経由で接続したい別のコンピュータがある場合、競合があり、2)多くの「ハッカー」がポート22からログインしようとするため、より危険ですので、それを閉鎖は、多くの場合、サーバー上で推奨される
meneldal

2

自宅のラップトップまたはRaspberryPiにはローカルIPアドレス(10.xxx範囲または192.168.xxのみ)があるため、ホームネットワークの外部(つまり、インターネットから)からRaspberryPi(またはラップトップ/サーバー)にアクセスするのは簡単な作業ではありません範囲)。インターネットから見えるパブリックIPアドレスはありません。

あなたの質問に対する簡単な答えは、ホームネットワークの外部からRaspberryPiへのSSHへの安全なパブリックトンネルエンドポイントを提供するSocketXPのような無料のオンラインサービスを使用することです。

SocketXPは、外部ネットワークから自宅のRaspberryPiにアクセスするためのシンプルで安全で簡単な方法を提供します。SocketXPでは、WiFiルーターの設定をハッキングする必要はありません。すぐに使用できます。RaspberryPiを外部からSSHにセットアップする方法を知るには、SocketXPを使用してRaspberryPiにSSHでリモート接続する方法に関するこのブログを読んでください。

SocketXPのセットアップ方法:

ステップ1:次のコマンドを使用してRaspberryPiにSocketXPクライアントをインストールします。

$ curl -O https://portal.socketxp.com/download/linux/socketxp && chmod +wx socketxp && sudo mv socketxp /usr/local/bin

手順2: 次のコマンドを使用して、SocketXPクライアントをSocketXP Cloud Serviceに接続します。一意の認証トークンを取得するには、https://portal.socketxp.comで登録する必要があります。

$ socketxp -register "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1NDk1MTg0MDAsImlkIjoiZ2FuZXNodmVscmFqYW5AZ21ha6K208n0.cB2uYevpH4lWIQGQUJdQ0eiEDqS8OiP_YOiqernnui3rjjadfadsfsfas34"

ステップ3:パブリックトンネルエンドポイントを取得して、インターネットからRaspberryPiにアクセスします。

$ socketxp -connect tcp://localhost:22

Tunnel Access -> tunnel.socketxp.com:35277

ステップ4:次のコマンドを使用して、インターネットからRaspberryPiにSSH接続します。

$ ssh raspberry-username@tunnel.socketxp.com -p 35277

ここで、「raspberry-username」は、RaspberryPiへのSSHログインに使用するユーザー名/パスワードです。


1

時間が経つにつれて、この質問は古くなり、パブリックにアクセス可能なIPv4アドレスを取得する可能性が少なくなります。ほとんどの場合、CGNATの背後にいます。つまり、単一のパブリックIPv4をISPの他の顧客と共有しています。そのため、PIや他の何かにポートフォワードすることはできません。

IPv6を使用している場合は、PIに静的アドレスを付与し、ルーターへのアクセスを許可できます。現在、多くのモバイルプロバイダーが電話にIPv6を提供しています。古い「陸上」のISP(ファイバー、DSL、同軸など)はしばしば足を引きずっています。

また、クラウドのどこかにパブリックIPv4を備えた安価なVPS(仮想プライベートサーバー)を取得し、PIからVPSへのSSHトンネルを作成することもできます。


0

phaltの答えに加えて、No IPなどの動的DNSサービスの1つをチェックアウトする必要があります。静的ホスト名でホームネットワークにアクセスできますが、DSLまたはケーブルプロバイダーが切断するため、IPアドレスは毎日変更される場合があります。彼らはまた、素敵でき始めるもそれに応じてルーターをセットアップを紹介ページを、。

inadynIPが変更されたときに、Raspberry Piにパッケージをインストールして、No-IP DNSエントリを更新することができます。これを実行するには、次を実行します。

sudo apt-get install inadyn

inadynのREADMEから、このサンプルコールを受け取りました。

inadyn --dyndns_system default@no-ip.com -u USER-p PASS -a HOST

お役に立てれば。


No-IpにはDUC(動的更新クライアント)があり、IPアドレスが変更されないようにします。
イゴールガナポルスキー

0

irwinの答えを追加する追加:

ステップ1:

wlanを介して接続する場合は、次を使用します。

iface wlan0 inet static
wpa-ssid "xxx" #<=your ssid
wpa-psk "yyy"  #<=your pw
address 192.168.1.xxx #<=preferred static ip (xxx<255)
netmask 255.255.255.0
gateway 192.168.1.1 #<=router's ip

ステップ2:

上記を変更した後、再起動する必要がありますnetworking

sudo /etc/init.d/networking restart

また、静的ブロックの前に2行、auto wlan0 allow-hotplug wlan0を追加しました。この投稿でそれを見つけましたraspberrypi.stackexchange.com/a/10320/10148私もそれらなしでそれをやろうとしましたが、うまくいきませんでした。
XandruCea

Raspbianのネットワーク構成と初期化システムの変更により、この回答は古くなっていると考えられます。
goldilocks

0

さらに、一部のルーターには一部のダイナミックDNSサービスのサポートが組み込まれています。ルーターにこのオプションを有効にすると(存在する場合)、PIにクライアントをインストールすることを回避できます(そして、作業中のオーバーヘッドを少し節約できます)。


0

したがって、ファイアウォール(ルーター)の背後にsshサーバー(Raspberry PI)があり、どこからでも接続したいと考えています。sshサーバーが適切にセットアップされていると仮定しましょう。つまり、Raspberryで 'ssh username @ localhost date'を実行すると、現在の日付/時刻が表示されます。

次の2つの問題を解決する必要があります。

  • ルーターは、固定ポートをraspberry sshポート(通常22)に転送する必要があります。
  • ルーターのパブリックIPアドレスを知る必要があります(通常、ルーターの再接続と24時間に1回変更されます)。

ポート転送とDynDNS

ソリューションが存在します(他の人が指摘したように):

  • ルーターでポート転送を開くことは各ルーターに固有であり、通常はルーター設定Webサイトで行われます。
  • 現在のIPの判別は、外部のWebサイト(https://www.google.com/search?q=whats+my+ip)によって最も簡単に行われます。あなたのIPは、定期的に変更する場合は、ダイナミックDNSエントリ(取得することができますhttps://www.noip.com/https://dyn.com/dns/、など)。

正しく設定されていれば、rasbperry piを次の方法で接続できます。

ssh username@[yourIP] -p [port] 
# or using dyndns 
ssh username@myname.dyndns.org -p [port]

sshhub.deを使用する

これまで言及されていない別の非常に便利なソリューションは、SSHUub(disclamer、私は著者です)です。ssh独自の転送を使用して、どこからでもRasperry PIにアクセスします。信頼性が高く、無料で、セットアップが非常に簡単です。一度登録してください:

ssh info@sshhub.de register

Raspberry PIで実行します。

while true; do ssh [username]@sshhub.de -R 22:localhost:22 -N -o ServerAliveInterval=10; sleep 10; done

...以上です!Raspberry Piはどこからでも接続できます:

ssh -J [username]@sshhub.de localhost

こんにちは、Raspberry Piへようこそ!てくださいツアーをし、訪問ヘルプセンターのが、物事はここで働いてどのように見て。あなたの貢献に感謝しますが、私たちはあなたに親切に尋ねることに注意してくださいはあなたの答えであなたの所属を開示するにください。(あなたが推奨ソフトウェアの作成者であると仮定します。)
Ghanima

私を正しい方向に向けてくれてありがとう。私は著者です。私は確かに、解決策を探している人々に私の答えで価値を提供したいと考えています。そして、sshhub自体と同じように願っています。
オリバー

0

VPNを使用して、piへの着信アクセスを有効にできます。OpenVPNは、インターネット(着信ポート)からアクセス可能なコンピューターが必要なソリューションの1つです。ただし、1台のコンピューターにアクセスできる限り、他のコンピューターはOpenVPNサーバーのクライアントになることができるため、その必要はありません。

もう1つのオプションは、ZeroTierなどのサービスを使用することです。ZeroTierは、VPNを作成するための集中サーバーを提供するため、独自のサーバーを実行する必要はありません。これも無料です。


別の非常に良いオプションは、wireguardを使用することです
インゴ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.