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)
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.
PermitRootLogin yes do /etc/ssh/sshd_config.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.
Instalação em um 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_keyspara o root que contenha sua chave pública. O padrão/etc/ssh/sshd_configpermite 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.
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órioskeldentro deairootfs/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.
- 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
- Isso copia a chave pública para o diretório
- Inicie o
NetworkManager.servicena inicialização adicionando o comando necessáriosystemctl enableacustomize_airootfs.shconforme 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.dsão executados. Então, tudo o que precisamos fazer é criar um script executável em/etc/profile.dcom o comando necessárionmcli 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
- Inicie o
sshd.servicena inicialização adicionando o comando necessáriosystemctl enableacustomize_airootfs.shconforme 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