2
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

mac(Sierra)とwindows10のssh接続&tunneling

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

目標

外出先から自宅 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 に接続できる。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
2
Help us understand the problem. What are the problem?