Install Arch Linux via SSH (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Install Arch Linux via SSH. Data da última tradução: 2020-06-13. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Este artigo possui o intuito de mostrar aos usuários como instalar o Arch através de uma conexão SSH. Considere esta abordagem quando o host está em local remoto ou você quiser usar capacidade de copiar/colar de um cliente SSH para fazer a instalação do Arch.

Na máquina remota (destino)

Nota: Esses passos exigem acesso físico à máquina. Se o host estiver localizado fisicamente em outro lugar, isso pode ser coordenado com outra pessoa.

Inicie a máquina destino em um ambiente Arch live por meio de uma imagem CD/USB Live: isso vai autenticar o usuário como root.

Neste ponto, configure a rede na máquina destino como, por exemplo, sugerido no Guia de instalação#Conectar à internet.

Em seguida, configure uma senha de root que é necessária para uma conexão SSH, já que a senha padrão do Arch para root é vazia:

# passwd

Agora, certifique-se que PermitRootLogin yes está presente (e descomentado) no /etc/ssh/sshd_config. Essa configuração vai permitir o login como root com autenticação com senha no servidor SSH.

Finalmente, inicie o daemon openssh com sshd.service, que está incluído por padrão no live CD.

Nota: A menos que precise, após a instalação é recomendado remover PermitRootLogin yes do /etc/ssh/sshd_config.
Dica: Se o computador destino está atrás de algum roteador NAT, e você precisar de acesso externo, a porta SSH (22, por padrão) deverá ser encaminhada para o endereço IP de LAN da máquina destino.

Na máquina local

Na máquina local, conecte à máquina destino via SSH com o seguinte comando:

$ ssh root@endereço.ip.do.destino

A partir daqui, uma mensagem de boas-vindas do ambiente live será apresentada, e será possível administrar a máquina como se estivesse sentado em frente ao teclado físico. Neste ponto, se a intenção apenas instalar o Arch da mídia live, siga o guia em Guia de instalação. Se a intenção é editar uma instalação Linux existente que está com problemas, siga o artigo wiki Instalar a partir de um Linux existente.

Dica: Considere instalar um multiplexador de terminal no sistema live (em memória) da máquina destino, de forma que se você for desconectado, você pode reconectar à sessão do seu multiplexador.

Instalação em um servidor headless

Nota: Essas etapas requerem acesso físico à porta USB da máquina headless. Alguém precisa inserir o dispositivo USB inicializável e ligar o servidor headless.

Esta seção descreve a instalação do Arch Linux em um servidor headless (usando a máquina Intel NUC como exemplo) sem teclado, mouse ou monitor. Isso envolve três etapas:

  1. Criar uma imagem live do Arch Linux modificada usando Archiso. A modificação é projetada para fazer três coisas:
    1. Conectar-se automaticamente à rede Wi-Fi (possivelmente protegida por senha) no momento da inicialização.
    2. Executar o daemon SSH no momento da inicialização
    3. Criar um arquivo /root/.ssh/authorized_keys para o root que contenha sua chave pública. O padrão /etc/ssh/sshd_config permite que o root efetue login no SSH usando autenticação de chave pública.
  2. Inicializar a máquina headless em um ambiente Arch live, inserindo a mídia de instalação que contém a imagem de inicialização modificada acima e inicializando-a.
  3. Aguardar um minuto ou mais para permitir que o tempo da máquina headless seja inicializado e conectado à rede Wi-Fi. Na sua máquina existente (com teclado e tela), faça acesso via SSH ao ambiente Arch live no servidor headless e conclua a instalação conforme descrito no Guia de instalação.
Nota: Para enfatizar o óbvio, toda a configuração de Wi-Fi e SSH executada na imagem de inicialização precisa ser feita novamente na instalação real do Arch Linux para permitir o acesso do SSH do Wi-Fi à máquina headless após a instalação.

O restante desta seção descreve a primeira etapa da criação de uma imagem live modificada. Tudo isso feito em uma máquina com uma instalação existente do Arch Linux, que normalmente também será a máquina da qual você planeja fazer o SSH na máquina headless.

cp -r /usr/share/archiso/configs/releng/ /root/archlive
  • Crie um arquivo definindo o SSID da sua rede, a senha e o arquivo de chave pública. Isso pode ser mesclado no arquivo de script descrito abaixo, mas eu prefiro manter alguma separação entre código e dados.
/root/archlive/my-build-config.sh
SSID=ssid_da_sua_rede_wifi
PASSWORD=senha_da_sua_rede_wifi
PUBLIC_KEY=/caminho/para/sua/chave/pública
  • Crie um script de compilação personalizado que instale os pacotes necessários, habilite os serviços desejados e copie o arquivo de chave pública para a imagem de inicialização. Este script faz várias modificações na imagem de inicialização:
      • Inicie o NetworkManager.service na inicialização adicionando o comando necessário systemctl enable a customize_airootfs.sh conforme explicado em Archiso (Português)#Preparar um perfil personalizado
      • Verifique se o comando necessário nmcli dev wifi connect é executado automaticamente na inicialização. A imagem de inicialização é configurada por padrão para fazer login automático para fazer root na inicialização. Quando o root (ou qualquer outro usuário) efetua login, os scripts em /etc/profile.d são executados. Então, tudo o que precisamos fazer é criar um script executável em /etc/profile.d com o comando necessário nmcli dev wifi connect. No script abaixo, a senha está entre um conjunto de aspas misteriosas; essa citação é necessária apenas se a senha for realmente uma senha (com espaços incorporados).
    • Inicie o sshd.service na inicialização adicionando o comando necessário systemctl enable a customize_airootfs.sh conforme explicado em Archiso (Português)#Preparar um perfil personalizado
    • Finalmente, o script de compilação personalizado deve executar o script de compilação original (./build.sh) para criar a imagem de inicialização.
/root/archlive/my-build.sh
# carrega os vakires de SSID PASSWORD PUBLIC_KEY
source my-build-config.sh

# copia PUBLIC_KEY para authorized_keys
mkdir -p airootfs/etc/skel/.ssh
cp $PUBLIC_KEY airootfs/etc/skel/.ssh/authorized_keys
chmod 700 airootfs/etc/skel/.ssh
chmod 600 airootfs/etc/skel/.ssh/authorized_keys

# instala o networkmanager
echo networkmanager >> packages.x86_64
# instala o linux-firmware (necessário para Intel NUC)
echo linux-firmware >> packages.x86_64

# habilita sshd e NetworkManager
echo systemctl enable sshd.service NetworkManager.service \
     >> airootfs/root/customize_airootfs.sh
# conecta a rede Wi-Fi no login
mkdir -p airootfs/etc/profile.d
echo nmcli dev wifi connect "$SSID" password '"'"$PASSWORD"'"' \
     >> airootfs/etc/profile.d/connect-wifi.sh
chmod +x airootfs/etc/profile.d/connect-wifi.sh

# executa o script de compilação original
./build.sh

Torne o script executável e execute-o:

cd /root/archlive
chmod +x my-build.sh
./my-build.sh

A imagem de inicialização modificada agora está pronta (na pasta /root/archlive/out/) e pode ser copiada para uma mídia de instalação (unidade USB) usando dd:

dd bs=4M if=out/archlinux_xxxxxx of=/dev/sdxx status=progress oflag=sync