You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.3 KiB

🚀 Гайд по созданию SSH-ключей и конфигов для DeepSpeed

Этот гайд помогает настроить SSH между двумя узлами для запуска DeepSpeed в Docker-контейнерах. Все шаги повторяются на обеих машинах (mlnode1 и mlnode2).


1 Создаем папки для SSH

Перейдите в директорию вашего проекта (например, deepspeed) и создайте структуру для хранения ключей и конфигов:

cd /media/Data1/common/docker/deepspeed
mkdir -p ssh_docker/keys

2 Генерируем SSH-ключи

Создаем ключ по алгоритму ed25519 с названием deepspeed и сохраняем его в ssh_docker/keys.

ssh-keygen -t ed25519 -f ssh_docker/keys/deepspeed -N ""

3 Создаем SSH config

Создаем файл ssh_docker/config и записываем туда конфигурацию для ваших узлов. Пример:

cat > ssh_docker/config << EOF
Host mlnode1_ds
	HostName 172.16.45.5
	User root
	Port 2229
	IdentityFile ~/.ssh/keys/deepspeed
	StrictHostKeyChecking no

Host mlnode2_ds
	HostName 172.16.45.3
	User root
	Port 2229
	IdentityFile ~/.ssh/keys/deepspeed
	StrictHostKeyChecking no
EOF
  • HostName — IP-адрес интерфейса, по которому будет идти соединение. Узнать его можно через:
ip a
  • Port — порт, который вы указывали в Dockerfile для SSH (например 2229).

4 Аналогично на второй машине

Повторите шаги 1-3 на второй машине. Убедитесь, что IP-адреса в HostName соответствуют интерфейсам для связи между нодами.


5 Обмениваемся публичными ключами

Создайте на обеих машинах файл ssh_docker/authorized_keys и добавьте туда публичный ключ второй машины.

  • На mlnode1 добавьте публичный ключ mlnode2:

  • На mlnode2 добавьте публичный ключ mlnode1:

cat ssh_docker/keys/deepspeed.pub

Для обмена можно использовать scp или просто скопировать содержимое deepspeed.pub вручную.


6 Выставляем права и владельца

Чтобы SSH корректно работал, выставим права на папку и файлы:

sudo chmod 700 ssh_docker
sudo chmod 700 ssh_docker/keys
sudo chmod 600 ssh_docker/keys/deepspeed
sudo chmod 644 ssh_docker/keys/deepspeed.pub
sudo chmod 644 ssh_docker/config
sudo chmod 600 ssh_docker/authorized_keys
sudo chown -R root:root ssh_docker

7 Использование в Docker

Эту папку можно монтировать в контейнер как volume для использования SSH. Например:

volumes:
  - /media/Data1/common/docker/deepspeed/ssh_docker:/root/.ssh