0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

SSH接続でDeeplabcutを動かしてみた(Ubuntu-Mac)

0
Posted at

SSH接続でUbuntu22.04にDeeplabcut3.0を入れて、Macで動かしてみた
(リモートデスクトップが上手くいかない場合などに有効)

やったこと
・SSH接続(Ubuntu-Mac)
・SSHでユーザを追加(複数人で使用する場合)
・UbuntuにDeeplabcutインストール
・既存のプロジェクトファイルをUbuntuに移動
・Macで編集し動作確認

SSH接続

Ubuntu側・・・SSHサーバーをインストール
Mac側・・・鍵を発行し、Ubuntuに接続

Ubuntu(サーバー)で操作

※ 既にリモートデスクトップが設定されている場合は解除しておくこと
※ 管理者権限で行うこと

・openssh-serverインストール

sudo apt install openssh-server

・うまく実行されているか SSHのステータスを確認

sudo systemctl status ssh

表示された以下の内容を確認
SSHが正しく実行されていれば Active: active (running) になっている
※ステータスの画面を抜けるにはesc:qを順に押す

● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor pr
Active: active (running) ・・・ 

サービスが実行されていない場合(今すぐ起動に切り替える場合)

sudo systemctl start ssh

(さらに次回起動時も自動的に起動したい場合)

sudo systemctl enable ssh

※再度、ステータスを確認しておく

Mac(クライアント)で操作

※これ以降、すべてMacで操作を行います
・SSHに必要な鍵を生成
(1度鍵を作っておけば他のサーバにもその鍵をそのまま利用できる)

ssh-keygen

Enter file in which to save the key (/username/.ssh/id_ed25519):
そのままenterでOK(鍵ファイルの名前や作成場所を変える場合は入力)
Created directory '/username/.ssh'.
そのままenterでOK(ディレクトリがなければ自動的に作られる)
Enter passphrase (empty for no passphrase):
そのままenterでOK(パスフレーズを設定する場合は入力)
Enter same passphrase again:
そのままenterでOK(パスフレーズを設定する場合は入力)

・サーバーに生成した鍵をコピー

ssh-copy-id サーバーの管理者名@サーバーのipアドレス

ex.ssh-copy-id taro@123.45.67.8

・サーバーにSSH接続する(鍵がid_ed25519の場合)

ssh -i ~/.ssh/id_ed25519 サーバーの管理者名@サーバーのipアドレス

管理者のパスワードを聞かれるので入力
プロンプトがサーバーの管理者名に変わっているのが確認できる

SSHでユーザーを追加

複数人でサーバーを利用するので、SSHでMacからUbuntuのユーザアカウントを追加した
※プロンプトがサーバーの管理者であることを確認

ログインユーザーの追加

sudo adduser 新規ユーザーの名前

作成するパスワードを聞かれるので設定する
あとはすべてENTERキーでOK

追加したユーザーでSSH接続をする

管理者をいったん抜ける

exit

既に作成済の鍵を使い、追加したユーザーでログインする

ssh -i ~/.ssh/id_ed25519 追加したユーザー名@サーバーのipアドレス

パスワードを聞かれるので、追加したユーザーのパスワードを入力
上手くいけば、プロンプトが追加ユーザーに変わる

UbuntuにDeeplabcutインストール

venvで仮想環境を作成してDeeplabcutを入れる

仮想環境作成

python3 -m venv 仮想環境名

Venvが入っていない場合はユーザーアカウントを一旦ぬけて、管理者でUbuntuにログインしてVenvをインストールする

exit
ssh -i ~/.ssh/id_ed25519 管理者@サーバーのipアドレス

Venvのインストール

sudo apt install python3.10-venv

Venvをインストールした後は管理者をexitで抜けて、ユーザーにログインしておく
再びVenvで仮想環境の作成を実行
実行できたら、仮想環境をアクティブにする

source 仮想環境名/bin/activate

アクティブになると、プロンプトの先頭が(仮想環境名)に変わる

Deeplabcutのインストール

作成時点(2026.1.16)の最新はpip install --pre "deeplabcut[gui]"
最新コマンドはDeeplabcutの公式サイトを確認

pip install --pre "deeplabcut[gui]"

ipython を起動

ipython

プロンプトが[In [1]:に変わる
Deeplabcutを起動

import deeplabcut

Loading DLC 3.0.0rc13... となればうまく起動できている

既存のプロジェクトファイルをUbuntuに移し、Macで編集し動かす

既にMacで作成していたDeeplabcutのプロジェクトをUbuntuにコピー
(ラベル付けまで出来ていればOK)

プロジェクトフォルダを指定してコピー

Macのファイルを扱うので一旦ユーザーをログアウトする

exit

SSHでDeeplabcutのプロジェクトフォルダをMacからUbuntuに送る

scp -r 送りたいフォルダのパス ユーザー名@サーバーのipアドレス:送り先のパス

ex.scp -r test/data jiro@123.45.67.8:/home/jiro/

Ubuntuに送った.yamlファイルの編集

.yamlファイルには作成した時のパスが自動的に記入されるので、Ubuntuに送った.yamlファイルをubuntuのパスに修正する必要があります。
(Macで修正してから送っても良いですが、今後ちょいちょい変更するかもなので)

Mac上でUbuntuのファイルを修正するにはSSH接続可能なエディタを使用します。(VS Codeを使いました)
・VS CodeをMacにインストール
・VS Code起動後、Remoto-SSH(拡張機能)をインストール
 左側のExtentions(拡張機能)アイコンをクリックし、Remoto-SSHのインストールをする
 (なければRemoto SSHで検索すると表示される)

・インストール後、左下のアイコン >< をクリック
connect to Hostをクリックして接続先のユーザー名やIPアドレスを入力してenter
ex.ssh jiro@123.45.67.8

パスワードを聞いてくるので入力

接続できたら、Ubuntuに入れたプロジェクトフォルダからconfig.yamlファイルを開く

プロジェクトフォルダのパスとビデオファイルのパスをMacからUbuntuのパスに変更しておく

project_path: ---この部分---
video_sets: ---この部分---

変更後、Deeplabcutをコマンドラインで動かしてみる

Deeplabcutをコマンドラインで動かす

パスの変更が出来たら、Deeplabcutが動くか確認します。
ラベル付けまでが完了していることが前提です。
こちらのリンクからコマンドラインでの操作方法を確認できます。


--追記--
 途中でUbuntuのSSDを変えた際のトラブルについて

 UbuntuのSSDを変えたのでSSHを再インストール、鍵をサーバーに再度コピーしたら怒られた

  WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!

原因:Macに保存されているknown_hostsの鍵との整合性
対処:古い鍵を削除する

ssh-keygen -R UbuntuのIPアドレス

サーバーを再構築した際は注意!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?