2021年4月17日土曜日

Log into Ubuntu from Win via SSH

Ubuntu20.04 に、Windows10 から ssh して Jupyter notebook を動かしてみました。

以前から、Ubuntu の Python 環境を Windows10 から使いたいなと考えていました。ライブラリの OS 対応状況が異なっており、ラップトップの Win10 では制約が生まれていたためです。GUI 接続は遅いし、ラップトップをデュアル OS にしても GPU を使えないし、ということで、SSH の出番です。
(これらの内容は web 上に情報があふれていますので、最低限と思われる部分のみをメモしておきます。)


まずは、ホスト側の準備。(Ubuntu20.04)
Ubuntu に OpenSSH server をいれます(入れていませんでした)。
$ sudo apt install openssh-server

サーバーを起動。
$ sudo systemctl  start ssh

鍵を作成。
秘密鍵「id_rsa」と公開鍵「id_rsa.pub」が作成されます。
※秘密鍵はローカルホストに保存します。隠しファイルを表示しないと見えません。
$ ssh-keygen -t rsa

「id_rsa.pub」を「authorized_keys」にリネーム。
$ cd ~/.ssh
$ mv id_rsa.pub authorized_keys


次に、クライアント側(Win10)。
ローカルホストに秘密鍵「id_rsa」を保存します。cdコマンドを打たなくてもよいように、同パスにcmd.exe をコピー。そこから立ち上げて ssh の流れです。

余談ですが、AWSのEC2でも ssh 接続の場合は同じようにコマンドを打つだけでしたね。AWSの場合は接続まで仮想ネットワークを構築する作業が必要でしたけど。
https://phreeqc.blogspot.com/2018/10/aws-2.html
・セキュリティ
 Multi-Factor Authentication (MFA), security group (インスタンスの仮想 FireWall)
・アカウント
 AWS Identity and Access Management (IAM) ユーザー (group, policy)
・ネットワーク
 Amazon Virtual Private Cloud (Amazon VPC: IP, subnet, route table, internet gateway), elastic IP
・仮想マシン
 EC2
・ssh
 ssh -i ~/.ssh/Key.pem ec2-user@IP
うーん、なんだか実機にアクセスするよりもセキュリティーが厳しいような。というか、これが普通で、実機が甘いのでしょうね。

Win10 も RS4(1803) で SSH に標準対応していたそうです(Windows Subsystem for Linux + Ubuntu は不要でした)。
https://phreeqc.blogspot.com/2018/10/aws.html
cmd.exe から以下をたたいて接続。ポートフォワーディング機能を使います。
※cmd.exe と 秘密鍵を同じパスにおいておけば、-i オプションも不要
$ ssh -L 8888:localhost:8888 pc-user@IP

これでJupyter notebook をたたけばサーバーが立ち上がります。あとはクライアント側のブラウザでサーバーにアクセスすればOK。
AWSではここで手こずりましたが、実機ではあっさり動きました。config 作っていたかな?
https://phreeqc.blogspot.com/2019/01/ec2-h2o-jupyter.html

 

****************************
ファイルの転送は WinSCP のままです。Jupyter 用途だと、あまり使わないですかね。


0 件のコメント:

コメントを投稿