[メモ](ラズパイ) ngrokを使って外からsshログイン
8214 ワード
概要
- ngrok を使って外からsshログイン。
- systemdで自動起動
https://github.com/vincenthsu/systemd-ngrok
のを使わせてもらっています。
環境
- Raspberry Pi 3B
-
2019-04-08-raspbian-stretch
ベース。
apt-get update && apt-get upgrade -y
でパッケージ更新済み(2019/5/16)
手順
-
いつも通りにラズパイを準備する。
- ラズパイのパスワード変更はしておいたほうがいいと思う。
-
ngrokのサイトにサインアップして、Authのとこから、Your Tunnel Authtokenのトークンを取得しておく。
-
コンソールを開いて、以下を実行する. NGROK_TOKEN=~
のところは、うまいように書き換える。
# 取得したTOKENを下に書く
NGROK_TOKEN=AaBbCcDdEeFfGgHhIiJj_KkLlMmNnOoPpQqRrSsTt
#
#以下コピペ
sudo sh -c 'apt update && apt install -y jq git curl unzip' && \
cd ${HOME} && \
git clone https://github.com/vincenthsu/systemd-ngrok.git && \
sed -i -e 's/amd64/arm/g' ./systemd-ngrok/install.sh && \
sudo ./systemd-ngrok/install.sh ${NGROK_TOKEN}
-
アクセスポートのチェック
curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
実行例-アクセスに使うポート番号が出てくるので、これを使う
pi@raspberrypi:~ $ curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
tcp://0.tcp.ngrok.io:16496
-
外からアクセス (ssh [email protected] -p 16496
)
実行例(初回接続時は、yesとタイプするとこがあるカモ)
pi@raspberrypi2:~ $ ssh [email protected] -p 16496 ls /
The authenticity of host '[0.tcp.ngrok.io]:16496 ([12.23.34.45]:16496)' can't be established.
ECDSA key fingerprint is SHA256:xppMhi47bVQPIxZrB2OMT6cSdi9zHRVoJrxpkZ2NRjI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[0.tcp.ngrok.io]:16496,[3.17.202.129]:16496' (ECDSA) to the list of known hosts.
[email protected]'s password:
bin
boot
dev
etc
home
lib
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
pi@raspberrypi2:~ $
おまけ
-
アンインストール
アンインストール
cd ${HOME} && \
sudo ./systemd-ngrok/uninstall.sh && \
rm -rfv ./systemd-ngrok
起動時や、アクセスするポート番号を監視して変更があったら、通知(Email?Slack?/Tweet?)すると便利かもしれない。
-
/opt/ngrok/ngrok.yml
の設定を書き換えれば、Webサーバを公開できたりする
例
authtoken: AaBbCcDdEeFfGgHhIiJj_KkLlMmNnOoPpQqRrSsTt
tunnels:
http:
addr: 80
proto: http
(実行例)設定書き換え後、以下実行。
pi@raspberrypi:~ $ cd ${HOME}
pi@raspberrypi:~ $ sudo systemctl daemon-reload
pi@raspberrypi:~ $ sudo systemctl restart ngrok.service
pi@raspberrypi:~ $ curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
https://33523460.ngrok.io
http://33523460.ngrok.io
pi@raspberrypi:~ $ mkdir -p ${HOME}/www && echo 'Hello World! Qiita!' > ${HOME}/www/index.html && cd ${HOME}/www && sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 ...
.
. >>>> ブラウザを開いて、https://33523460.ngrok.io に接続 <<<<
.
127.0.0.1 - - [16/May/2019 14:40:48] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [16/May/2019 14:40:48] code 404, message File not found
127.0.0.1 - - [16/May/2019 14:40:48] "GET /favicon.ico HTTP/1.1" 404 -
.
. >>>> テストが終わったら、CTRL-C <<<<
.
^C
Keyboard interrupt received, exiting.
pi@raspberrypi:~/www $ cd ${HOME}
pi@raspberrypi:~ $ rm -rfv www
removed 'www/index.html'
removed directory 'www'
pi@raspberrypi:~ $
https://github.com/vincenthsu/systemd-ngrok
のを使わせてもらっています。- Raspberry Pi 3B
-
2019-04-08-raspbian-stretch
ベース。apt-get update && apt-get upgrade -y
でパッケージ更新済み(2019/5/16)
手順
-
いつも通りにラズパイを準備する。
- ラズパイのパスワード変更はしておいたほうがいいと思う。
-
ngrokのサイトにサインアップして、Authのとこから、Your Tunnel Authtokenのトークンを取得しておく。
-
コンソールを開いて、以下を実行する. NGROK_TOKEN=~
のところは、うまいように書き換える。
# 取得したTOKENを下に書く
NGROK_TOKEN=AaBbCcDdEeFfGgHhIiJj_KkLlMmNnOoPpQqRrSsTt
#
#以下コピペ
sudo sh -c 'apt update && apt install -y jq git curl unzip' && \
cd ${HOME} && \
git clone https://github.com/vincenthsu/systemd-ngrok.git && \
sed -i -e 's/amd64/arm/g' ./systemd-ngrok/install.sh && \
sudo ./systemd-ngrok/install.sh ${NGROK_TOKEN}
-
アクセスポートのチェック
curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
実行例-アクセスに使うポート番号が出てくるので、これを使う
pi@raspberrypi:~ $ curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
tcp://0.tcp.ngrok.io:16496
-
外からアクセス (ssh [email protected] -p 16496
)
実行例(初回接続時は、yesとタイプするとこがあるカモ)
pi@raspberrypi2:~ $ ssh [email protected] -p 16496 ls /
The authenticity of host '[0.tcp.ngrok.io]:16496 ([12.23.34.45]:16496)' can't be established.
ECDSA key fingerprint is SHA256:xppMhi47bVQPIxZrB2OMT6cSdi9zHRVoJrxpkZ2NRjI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[0.tcp.ngrok.io]:16496,[3.17.202.129]:16496' (ECDSA) to the list of known hosts.
[email protected]'s password:
bin
boot
dev
etc
home
lib
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
pi@raspberrypi2:~ $
おまけ
-
アンインストール
アンインストール
cd ${HOME} && \
sudo ./systemd-ngrok/uninstall.sh && \
rm -rfv ./systemd-ngrok
起動時や、アクセスするポート番号を監視して変更があったら、通知(Email?Slack?/Tweet?)すると便利かもしれない。
-
/opt/ngrok/ngrok.yml
の設定を書き換えれば、Webサーバを公開できたりする
例
authtoken: AaBbCcDdEeFfGgHhIiJj_KkLlMmNnOoPpQqRrSsTt
tunnels:
http:
addr: 80
proto: http
(実行例)設定書き換え後、以下実行。
pi@raspberrypi:~ $ cd ${HOME}
pi@raspberrypi:~ $ sudo systemctl daemon-reload
pi@raspberrypi:~ $ sudo systemctl restart ngrok.service
pi@raspberrypi:~ $ curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
https://33523460.ngrok.io
http://33523460.ngrok.io
pi@raspberrypi:~ $ mkdir -p ${HOME}/www && echo 'Hello World! Qiita!' > ${HOME}/www/index.html && cd ${HOME}/www && sudo python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 ...
.
. >>>> ブラウザを開いて、https://33523460.ngrok.io に接続 <<<<
.
127.0.0.1 - - [16/May/2019 14:40:48] "GET / HTTP/1.1" 200 -
127.0.0.1 - - [16/May/2019 14:40:48] code 404, message File not found
127.0.0.1 - - [16/May/2019 14:40:48] "GET /favicon.ico HTTP/1.1" 404 -
.
. >>>> テストが終わったら、CTRL-C <<<<
.
^C
Keyboard interrupt received, exiting.
pi@raspberrypi:~/www $ cd ${HOME}
pi@raspberrypi:~ $ rm -rfv www
removed 'www/index.html'
removed directory 'www'
pi@raspberrypi:~ $
いつも通りにラズパイを準備する。
- ラズパイのパスワード変更はしておいたほうがいいと思う。
ngrokのサイトにサインアップして、Authのとこから、Your Tunnel Authtokenのトークンを取得しておく。
コンソールを開いて、以下を実行する. NGROK_TOKEN=~
のところは、うまいように書き換える。
# 取得したTOKENを下に書く
NGROK_TOKEN=AaBbCcDdEeFfGgHhIiJj_KkLlMmNnOoPpQqRrSsTt
#
#以下コピペ
sudo sh -c 'apt update && apt install -y jq git curl unzip' && \
cd ${HOME} && \
git clone https://github.com/vincenthsu/systemd-ngrok.git && \
sed -i -e 's/amd64/arm/g' ./systemd-ngrok/install.sh && \
sudo ./systemd-ngrok/install.sh ${NGROK_TOKEN}
アクセスポートのチェック
curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
実行例-アクセスに使うポート番号が出てくるので、これを使う
pi@raspberrypi:~ $ curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url"
tcp://0.tcp.ngrok.io:16496
外からアクセス (ssh [email protected] -p 16496
)
実行例(初回接続時は、yesとタイプするとこがあるカモ)
pi@raspberrypi2:~ $ ssh [email protected] -p 16496 ls /
The authenticity of host '[0.tcp.ngrok.io]:16496 ([12.23.34.45]:16496)' can't be established.
ECDSA key fingerprint is SHA256:xppMhi47bVQPIxZrB2OMT6cSdi9zHRVoJrxpkZ2NRjI.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[0.tcp.ngrok.io]:16496,[3.17.202.129]:16496' (ECDSA) to the list of known hosts.
[email protected]'s password:
bin
boot
dev
etc
home
lib
lost+found
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
pi@raspberrypi2:~ $
-
アンインストール
アンインストールcd ${HOME} && \ sudo ./systemd-ngrok/uninstall.sh && \ rm -rfv ./systemd-ngrok
起動時や、アクセスするポート番号を監視して変更があったら、通知(Email?Slack?/Tweet?)すると便利かもしれない。
-
/opt/ngrok/ngrok.yml
の設定を書き換えれば、Webサーバを公開できたりする例authtoken: AaBbCcDdEeFfGgHhIiJj_KkLlMmNnOoPpQqRrSsTt tunnels: http: addr: 80 proto: http
(実行例)設定書き換え後、以下実行。pi@raspberrypi:~ $ cd ${HOME} pi@raspberrypi:~ $ sudo systemctl daemon-reload pi@raspberrypi:~ $ sudo systemctl restart ngrok.service pi@raspberrypi:~ $ curl -s localhost:4040/api/tunnels | jq -r ".tunnels[].public_url" https://33523460.ngrok.io http://33523460.ngrok.io pi@raspberrypi:~ $ mkdir -p ${HOME}/www && echo 'Hello World! Qiita!' > ${HOME}/www/index.html && cd ${HOME}/www && sudo python3 -m http.server 80 Serving HTTP on 0.0.0.0 port 80 ... . . >>>> ブラウザを開いて、https://33523460.ngrok.io に接続 <<<< . 127.0.0.1 - - [16/May/2019 14:40:48] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [16/May/2019 14:40:48] code 404, message File not found 127.0.0.1 - - [16/May/2019 14:40:48] "GET /favicon.ico HTTP/1.1" 404 - . . >>>> テストが終わったら、CTRL-C <<<< . ^C Keyboard interrupt received, exiting. pi@raspberrypi:~/www $ cd ${HOME} pi@raspberrypi:~ $ rm -rfv www removed 'www/index.html' removed directory 'www' pi@raspberrypi:~ $
Author And Source
この問題について([メモ](ラズパイ) ngrokを使って外からsshログイン), 我々は、より多くの情報をここで見つけました https://qiita.com/mt08/items/e6d095816b89f28091a7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .