Jetson Nano 2GBのセットアップ ~SSH接続編~
はじめに
Jetson Nano 2GB とは NVIDIA社によって販売されている小型のエッジコンピューティング用のGPUコンピューティングボードです。これを使って Kaggleの学習をさせるためにセットアップします。今回はSSHで自分のPCから接続する設定について書きます。
私が所持しているPCはMacであるためMacOSを前提としたSSHの接続を行います。
用意するもの(Amazonのリンク付き)
- Jetson Nano 2GB
- PC
- マイクロSDカードとマイクロSDアダプタ(64GB以上)
- ディスプレイ
- HDMIケーブル
- USB Type_Cのケーブル
- USB Type_C対応のコンセント
- マウス
- USBメモリー
SSHとは
Secure Shellの略であり、ネットワークに接続されたデバイスを安全に遠隔操作する手段です。
SSHにより適切な設定を行えば公開鍵暗号方式と呼ばれる通信暗号方式で通信を行うことが可能です。
公開鍵、秘密鍵とは何か
A,Bが通信する際、
1.Aが秘密鍵から公開鍵を作成しBに渡す
2.Bが、その公開鍵を使って通信内容を暗号化する
3.暗号化された文書をAが受け取る
4.Aが秘密鍵を用いて復号し中身を確認する
秘密鍵、公開鍵を作成
1 | PS> ssh-keygen -t rsa -b 4096 |
$ ssh-keygen -t rsa -b 4096
まず、クライアント側で公開鍵と秘密鍵を作成します。-t
オプションで暗号化方式を決めます。-b
で鍵のビット数を指定できます。
これで、ホームディレクトリ直下に.ssh/
ができ、この中に秘密鍵ファイルid_rsa
、公開鍵ファイルid_rsa.pub
が作成されます。
クライアント側(macOS, linuxの方)
最初からsshは使えるはずです.
秘密鍵、公開鍵を作成
1 | $ ssh-keygen -t rsa -b 4096 |
$ ssh-keygen -t rsa -b 4096
まず、クライアント側で公開鍵と秘密鍵を作成します。-t
オプションで暗号化方式を決めます。-b
で鍵のビット数を指定できます。
これで、ホームディレクトリ直下に.ssh/
ができ、この中に秘密鍵ファイルid_rsa
、公開鍵ファイルid_rsa.pub
が作成されます。
id_rsa
をid_jetson
に名前変更
アクセス権限の変更
1 |
|
ホスト側
公開鍵をホストへ渡す
id_rsa.pub
をUSBメモリやgoogle dirve等を使ってクライアント側の~/.ssh
に設置してください。
(パスワード認証方式を使った方法もあります。)
公開鍵を追加
公開鍵の名前をauthorized_keys
に変更し、権限を変更してください。
1 | $ cat id_rsa.pub >> authorized_keys |
クライアント側 コマンドでsshアクセス
以下のコマンドでアクセス可能です。秘密鍵の場所を指定し、ユーザIDとIPアドレスを指定してください。
IPアドレスは,ヘッドレスデバイスモードの場合,192.168.55.1
が割り当てられています。
1 | $ ssh –i ~/.ssh/id_jetson [ログインユーザID]@[IPアドレス] |
サーバーに入ることができたら完了です。
.ssh/config
クライアント側の~/.ssh/
にconfig
というファイル名でテキストファイルを作成し、テキストエディタでこれを開き、以下のように編集しましょう。
1 | Host jetson_usb_mode |
1 | $ ssh jetson_usb_mode |
同様に入れたら完了です。
VScodeからJetson Nanoに接続する。
VScodeとは
Visual Studio CodeはMicrosoftが開発しているWindows、Linux、macOS用のソースコードエディタです。コード編集の他、git、githubコントロールやデバッガ、インテリセンスなどなど他にもここでは語り尽くせないほどたくさんの便利機能、拡張機能を備えたエディタです。あくまでエディタなのでVScode自体にプログラムをコンパイルして実行する能力はありませんが、設定次第でそれらの操作が全てVScodeから行えるようになります。
VScodeをインストール
こちらからダウンロードしてください。
このページからそれぞれ自分の作業用PCの環境にあったVScodeをダウンロードしてください。
拡張機能:Remote-Developmentを取得
VScodeはそのまま使うとローカルに保存されたディレクトリを開き、そこでソースコードを編集することが可能です
さらに、拡張機能であるRemote-Development
を導入することで、
リモートで接続した先のマシン内のソースコードをローカルに存在しているファイルかのように取り扱うことができるようになる拡張機能です。
Remote-Development
はRemote-WSL
、Remote-SSH
、Remote-Container
の3つからなる拡張機能で、今回はこのうちのRemote-SSH
を使うことで、Jetsonにアクセスしたいと思います。
よくわからないと思うのでやってみましょう。
Remote-SSH
VScodeを開いてください。
サイドバーのアイコンで、四角形が4つ並んでいるアイコンを選択してください。
ここから様々な拡張機能の管理を行うことができます。
Remote-Development
拡張機能をインストールしたら、
VScodeのサイドバーに、ディスプレイにマークがついているアイコンが増えているはずです。
こちらを選択し、一番上のプルダウンからRemoteを選択します。
ここに.ssh/config
に書き込んだHost name
が表示されているはずです。
こちらをクリックしてSSH接続が完了するのを待ちます。
完了すると、別の新しいウインドウでJetson内に接続した状態のVScodeのワークスペースが立ち上がるはずです。
終わりに
次回はKaggleの環境を構築していきます。