Install Arch Linux via SSH (Português)

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:
Criar uma imagem
live
do Arch Linux modificada usando
Archiso
. A modificação é projetada para fazer três coisas:
Conectar-se automaticamente à rede Wi-Fi (possivelmente protegida por senha) no momento da inicialização.
Executar o daemon SSH no momento da inicialização
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.
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.
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