Activar servidor SSH en Opensuse

Introducción

Recentemente quixen conectar por SSH contra o meu sobremesa, pero non tiña activo o servidor de SSH. De cando en cando preciso conectar, dende outro equipo a el. Así que tiven que activar a conexión por SSH ao equipo.

Estes son os pasos que seguín.

Revisando o necesario

O primeiro foi comprobar que tivese o necesario para poder levantar o servicio. Así que quixen ver que o tivese instalado.

zypper search openssh

Na saída puiden ver que estava instalado, tanto openssh como openssh-server.

S  | Name                            | Summary                                               | Type
---+---------------------------------+-------------------------------------------------------+--------
   | lxqt-openssh-askpass            | GUI to query passwords on behalf of SSH agents        | Paquete
   | lxqt-openssh-askpass-lang       | Translations for package lxqt-openssh-askpass         | Paquete
i  | openssh                         | Secure Shell Client and Server (Remote Login Program) | Paquete
i  | openssh-askpass-gnome           | A GNOME-Based Passphrase Dialog for OpenSSH           | Paquete
   | openssh-cavs                    | OpenSSH FIPS crypto module CAVS tests                 | Paquete
i  | openssh-clients                 | SSH (Secure Shell) client applications                | Paquete
i  | openssh-common                  | SSH (Secure Shell) common files                       | Paquete
   | openssh-helpers                 | OpenSSH AuthorizedKeysCommand helpers                 | Paquete
i  | openssh-server                  | SSH (Secure Shell) server                             | Paquete
   | openssh-server-config-rootlogin | Config to permit root logins to sshd                  | Paquete

Así pois o seguinte foi comprobar o estado do servizo, co seguinte comando.

systemctl status sshd.service

Este devolveume que non estaba activo. Así que fun ver a configuración na ruta /etc/ssh, non tiña nada configurado. Así que o primeiro que fixen foi crear un ficheiro sshd_config nesa ruta, como único contido un include dos ficheiros de configuración da ruta /etc/ssh/sshd_config.d/*.conf.
A carpeta tamén estaba baleira, así que tiven que crear o meu sshd_config.conf. O contido deste ficheiro foi o seguinte.

PasswordAuthentication no
KbdInteractiveAuthentication no
UsePAM yes
X11Forwarding no
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server

Que é básicamente a configuración que me creou o wizard da Raspberry ao instalar o Raspberry Pi OS.

Como indiquei que non acepto password, o seguinte foi crear o ficheiro /home/codigomorrazo/.ssh/authorized_keys. Neste ficheiro hai que incluír as claves públicas dos usuarios aos que queiramos permitir conectarse. Xeralmente en /home/user/.ssh, cando xeramos as claves, teremos unha clave id_rsa e id_rsa.pub. Ou con outro nome se escollemos outros cifrados. No ficheiro de authorized_keys nunha nova liña pegaremos o contido do ficheiro .pub.

Con esta configuración xa estaba listo para activar o servizo.

systemctl enable sshd.service

Pero tamén activalo, doutro xeito teríamos que reiniciar.

systemctl start sshd.service

O servizo corre, pero non conecta

Neste punto o servizo estaba en execución pero non podía conectar. Recibía un erro conforme non se atopaba a ruta á ip, no porto escollido.
Despois de revisar o problema resultou estar no cortalumes. Para ver a configuración, executei o seguinte comando.

sudo firewall-cmd --list-all

Que me dou unha saída como a seguinte

public (default, active)
  target: default
  ingress-priority: 0
  egress-priority: 0
  icmp-block-inversion: no
  interfaces: eno1 ipv6leakintrf0 proton0
  sources: 
  services: dhcpv6-client kdeconnect
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Nos servizos non está incluído o SSH, nin o porto está aberto noutro sitio. Así que tiven que engadilo

sudo firewall-cmd --permanent --add-service=ssh

Recargamos a configuración

sudo firewall-cmd --reload
sudo firewall-cmd --list-all
public (default, active)
  target: default
  ingress-priority: 0
  egress-priority: 0
  icmp-block-inversion: no
  interfaces: eno1 ipv6leakintrf0 proton0
  sources: 
  services: dhcpv6-client kdeconnect ssh
  ports: 
  protocols: 
  forward: yes
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

Con isto sí que xa puiden conectar dende outro equipo.

Conclusión

Acceder por SSH é moi útil cando temos un equipo no que están correndo procesos que precisamos mudar, sen estar presentes. No meu caso estou facendo probas ca IA local dende o portátil, xa que me é máis cómodo por ter varias pantallas conectadas. O sobremesa é o único equipo que teño que ten capacidade de correr modelos dun xeito “fluído”, así que os modelos corren nel. Pero as probas fagoas dende o portátil, contra o seu Ollama.

Hoxe foi isto, pero ter SSH configurado, tamén abre a porta a executar SSHFS para montar algún directorio e acceder aos arquivos.