Install Arch Linux via SSH (Português)

From ArchWiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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)#Configurar a mídia live
      • 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)#Configurar a mídia live
    • 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