как установить и запустить ssh-сервер в gnu/guix?
вот скачал я qemu-образ gnu/guix, распаковал, запустил с рекомендованным параметром (-nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22), догадался, что можно использовать sudo для административных действий (по умолчанию запускается x-сессия пользователя guest).
а вот как теперь установить и, главное, запустить openssh-сервер, чтобы можно было по протоколу ssh подключиться с хост-машины? по рекомендованной ссылке, честно говоря, ничего не понятно, а система инициализации тут вообще своя собственная: gnu/shepherd.
вроде бы как вся конфигурации системы должна описываться в одном файле — /etc/system.scm, но даже этого файла почему-то нет.
Ответы (1 шт):
да, действительно, вся конфигурация системы может описываться всего одним файлом (на языке scheme). и прямо в этом файле можно дать указание использовать openssh-сервер (он будет и установлен и запущен после применения новой конфигурации). в «образцовом» файле даже упоминание про openssh есть, но оно закомментировано.
узнать месторасположение актуального файла с конфигурацией можно такой командой (приведён пример вывода):
$ guix system describe
Generation 1 Nov 22 2020 22:16:35 (current)
file name: /var/guix/profiles/system-1-link
canonical file name: /gnu/store/kjrm9syxwrs5sfmipllv8ypfpx2pssij-system
label: GNU Guix 1.2.0-1.bd96e6d
bootloader: grub
root device: UUID: bd40a448-f6b1-2062-c253-4991bd40a448
kernel: /gnu/store/7a2db6x9rjmbrfl48j1cx9zxz7czq6sc-linux-libre-5.9.3/bzImage
configuration file: /gnu/store/cdqxpviqg1vw4ky71i63j2qq8wr30iby-configuration.scm
вот под заголовком «configuration file» и упомянут путь к актуальному конфигурационному файлу.
скопируйте его куда-нибудь (да хоть и в /etc) под произвольным именем (например, system.scm, чтоб самому потом понятно было, что за файл), не забудьте разрешить запись в скопированный файл для владельца (исходный файл не доступен для записи никому, с такими же правами получится и скопированный программой cp файл).
теперь найдите в нём упоминание про сервис openssh:
;; Uncomment the line below to add an SSH server.
;;(service openssh-service-type)
и раскомментируйте строку, убрав символы ; в её начале (это одна из форм комментирования строки в языках lisp/scheme/и т.п.):
(service openssh-service-type)
а теперь примените новую конфигурацию:
$ sudo guix system reconfigure /путь/к/новому/файлу
после переконфигурации (надеюсь она, как и у меня, пройдёт успешно) можно подключаться из хост-системы (если использовали опцию -nic user,model=virtio-net-pci,hostfwd=tcp::10022-:22 при запуске qemu):
$ ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 10022 guest@localhost
ах, да, пароль! по умолчанию у пользователя guest пароля нет. можно его установить программой passwd.