Install Arch Linux via SSH (Português) - ArchWiki

Jump to content
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.

- Instale Archiso e, como explicado em Archiso (Português)#Preparar um perfil personalizado, copie o perfil releng para uma pasta adequada:

    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:
  - Isso copia a chave pública para o diretório `.ssh/allowed_keys`. Como explicado em Archiso (Português)#Adicionando arquivos para a imagem, isso deve ser feito criando um diretório `skel` dentro de `airootfs/` e copie os arquivos lá. O SSH é muito específico sobre permissões de arquivo e também devemos definir essas permissões.
  - Isso configura a imagem de inicialização para conectar-se à rede Wi-Fi na inicialização usando NetworkManager e sua interface de linha de comando nmcli. Existem várias etapas envolvidas nisso:
    - Instale o NetworkManager bem como os drivers e firmwares da conexão sem fio o que no caso do Intel NUC é o linux-firmware. Como explicado em Archiso (Português)#Selecionando pacotes, a instalação de pacotes adicionais é realizada adicionando estes pacotes às listas de pacotes em `packages.x86_64`.

- - - 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

Categories:

- Installation process (Português)
- Secure Shell (Português)