※他の情報を十分にサーベイした上、自己責任で行ってください。

目標

外出先から自宅 mac に接続し, jupyter notebook でコーディングができる。

環境

概要のみ

mac
– OS: macos(Sierra)

windows
– OS: Windows10 Home Edition

mac(Sierra)をwindows10から操作する。

ssh 接続のみで十分であったが、vnc も試してみた。

ローカルネットワーク内の ssh 接続 & ssh tunneling で vnc 接続

サーバ側(mac)

sshのポート変更

sudo vim /etc/services
77 ssh              22/udp     # SSH Remote Login Protocol$
78 ssh              22/tcp     # SSH Remote Login Protocol$

の22を、未使用のポート番号に変更。(未使用ポートの確認はググる)

IPアドレスの確認

ifconfig

でわかるのでメモ。

ssh公開鍵の生成

cd ~/.ssh
ssh-keygen -t rsa

出てくる項目は y か Enter でスキップ。

公開鍵を編集する。

cat id_rsa.pub >> authorized_keys
chmod 600 authorized_keys
rm id_rsa.pub

秘密鍵を配置する。

chmod 600 id_rsa

id_rsaはクライアント側に送信する。

sshの設定

sudo vim /etc/ssh/sshd_config

以下のように編集(#外したり、yesをnoにしたり)

PeimitRootLogin no

PasswordAuthentication no

RSAAuthentication yes

PubkeyAuthentication yes

AuthorizedKeysFile     .ssh/authorized_keys

リモートログインの設定

[システム環境設定]>[共有]
で、リモートログインをオンにする。

ここでアクセスを許可されたユーザがクライアント側でログインする際のアカウントになる。

画面共有の設定

上記と同じ画面で、画面共有をオンにする。

日本語文字化け対策

sudo vim ~/.bash_profile

以下を追記

export LANG=ja_JP.UTF-8

設定を反映

source ~/.bash_profile

クライアント側(windows)

RLogin をインストール

    • サーバのIPアドレス

 

    • アカウント名、パスワード

 

    SSH認証キー(id_rsa)をインポート

以上でsshが接続できる。

ssh tunneling による vnc

[ファイル]>[サーバに接続]
で先ほどの設定ファイルを選択し、
[編集]
を押す。

[サーバ]>[プロトコル]>[ポートフォワード]
を選択。新規を作成し、以下のように設定

    • Listened

Hostname: localhost
Port: 33333(適当)

Connect

Hostname: サーバのIPアドレス
Port: 5800

5800はvncのポート番号。

これを保存し、ssh再接続。

UltraVNC をインストールし、接続先に
127.0.0.1::33333
を入力、アカウントのパスワードを入力すると接続できる。

外部ネットワークの ssh 接続 & ssh tunneling で vnc 接続

このサイトからグローバルIPアドレスを確認してメモしておく。

環境によっては定期的に変わってしまうので、ここらへんなどで固定IPを取得しておいてもよい。

ルーターの設定

ルーターの設定画面は、機種によってIPアドレスが異なる。例えば、ブラウザで192.168.0.1等につなぐと設定画面が現れる。

それぞれの機器のポートマッピング設定で、サーバIPのsshのIPを開く。

クライアントの設定

内部ネットワークの設定でサーバIPを入れたところに、グローバルIPを上書きすればOK。

Python環境の構築(Homebrew)

macにはネイティブで python2.7 がインストールされている。

執筆時点では、Homebrewのデフォルトpythyonが3系になっている。

Python3,pip

brew install python

venv

python -m venv env1

# activate
source env1/bin/activate

# deactivate
deactivate

jupyter notebook

pip install jupyter

# cinfig file emerge
jupyter notebook --generate-sshd_config
sudo vim ~/.jupyter/jupyter_notebook_config.py
# 起動してもブラウザが自動起動しないようにする。
c.NotebookApp.open_browser = False

パスワード設定(jupyter5.0以降)

jupyter notebook password

nbextended

pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user

ssh tunneling の接続

vncと同じことを、8888ポートに行えばよい。
ただし、クライアント側のポートも、未使用の別ポートに変えること。たとえば、

    • Listened

Hostname: localhost
Port: 33334(適当)

Connect

Hostname: サーバのIPアドレス
Port: 8888

と設定すれば、設定でssh接続し、クライアントブラウザで

127.0.0.1:8888

を打つと Jupyter に接続できる。

广告
将在 10 秒后关闭
bannerAds