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アドレス
サーバーを再構築した際は注意!

