こちらのDockerイメージを用いることで、GPUのクラスターを構成できます。
しかし、sshで接続しようとすると、なぜかユーザーubuntu
へのパスワードを聞かれることに。公開キーも秘密キーも指定しているんですけどね。
takaaki.yayoi@xxxxxx ~ % ssh ubuntu@4.241.85.216 -p 2200 -i /Users/takaaki.yayoi/.ssh/id_rsa
The authenticity of host '[4.241.85.216]:2200 ([4.241.85.216]:2200)' can't be established.
ED25519 key fingerprint is xxx
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[4.241.85.216]:2200' (ED25519) to the list of known hosts.
ubuntu@4.241.85.216's password:
こちらの設定は完了していますので、standardのイメージだと問題なく接続できます。
色々確認してたら、そもそもssh接続に使っているユーザーubuntuが作成されているのか? と思い当たりました。
クラスター起動後にノートブックで以下を実行。
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:104::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
libraries:x:1000:1000::/home/libraries:/bin/sh
ubuntuがいない...。
こちらにもユーザー追加しろとあります。standard
の場合はDockerfileでユーザー追加処理が記載されていましたが、GPU系は(確認した限り)無い様子。
Adding the ssh user. In this example, we use
ubuntu
, but you can customize this
なので、まずはノートブックで動作確認します。ユーザーubuntu
を追加します。
%sh
useradd --create-home --shell /bin/bash --groups sudo ubuntu
%sh
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
systemd-network:x:101:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:102:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:104::/nonexistent:/usr/sbin/nologin
systemd-timesync:x:104:105:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
libraries:x:1000:1000::/home/libraries:/bin/sh
ubuntu:x:1001:1001::/home/ubuntu:/bin/bash
ubuntuが作成されています。
手動で、sshサーバーをインストール・起動します。
%sh
apt-get install --yes openssh-server
service ssh restart
これでssh接続して見ます。
takaaki.yayoi@xxxxx ~ % ssh ubuntu@172.207.163.54 -p 2200 -i /Users/takaaki.yayoi/.ssh/id_rsa
The authenticity of host '[172.207.163.54]:2200 ([172.207.163.54]:2200)' can't be established.
ED25519 key fingerprint is xxxx
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[172.207.163.54]:2200' (ED25519) to the list of known hosts.
Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-1067-azure x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage
:
The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
ubuntu@0910-083250-wgwjxjw7-10-0-0-132:~$
いけました。
以前作成したDockerfileにユーザー作成を追加します。ベースイメージもGPUのものに変更しています。
FROM databricksruntime/gpu-pytorch:cuda11.8
RUN apt-get update \
&& apt-get install --yes openssh-server \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
RUN useradd --create-home --shell /bin/bash --groups sudo ubuntu
ENTRYPOINT service ssh restart && bash
コンテナレジストリにプッシュします。
docker build -t <レジストリ名>/gpu-pytorch-ssh:cuda11.8 .
docker push <レジストリ名>/gpu-pytorch-ssh:cuda11.8