quinta-feira, 21 de novembro de 2019

Como forçar o APT a usar IPv4

Para forçar o APT a usar IPv4 no Ubuntu e similares, abra o terminal (o atalho é Ctrl + Alt + T).
Os comandos serão dados como root, isto é, você tem que logar como root ou usar sudo.

Assim podemos forçar o APT a usar IPv4:

1- Para atualizar a lista de repositórios:
$ sudo apt-get -o Acquire::ForceIPv4=true update
2- Para atualizar o sistema:
$ sudo apt-get -o Acquire::ForceIPv4=true upgrade
3- instalar algum pacote:
$ sudo apt-get -o Acquire::ForceIPv4=true install nome-do-pacote

Note que você sempre terá que colocar a opção nos comandos acima.
Contudo se você quiser fazer com que essas mesmas instruções sejam executadas sempre que o sistema for iniciado, precisamos adicionar uma linha em  /etc/apt/apt.conf.d/99force-ipv4, utilizando a linha de comando abaixo:
$ echo 'Acquire::ForceIPv4 "true";' | sudo tee /etc/apt/apt.conf.d/99force-ipv4



Forçar o cliente SSH a usar autenticação por senha em vez de chave pública

Eu estava precisando conectar em um computador via SSH, contudo meu cliente só tentava fazer a conexão utilizando as chaves de criptografia, contudo eu não tinha a chave do servidor, somente usuário e senha.
Assim eu precisava forçar o cliente SSH a conectar usando autenticação de senha e negar explicitamente a autenticação de chave pública.
Isto pode ser feito acrescentando alguns parâmetros à chamada SSH mostrados abaixo.
Note que no meu caso eu precisava informar a porta de conexão usando -p 22222. Se seu servidor usa a porta padrão (22) pode omitir esta parte.

ssh -p 22222 -o PreferredAuthentications=password -o PubkeyAuthentication=no usuario@servidor

Os mesmos parâmetros são validos em uma chamada para copiar arquivos usando scp (secure copy):
scp -p 22222 -o PreferredAuthentications=password -o PubkeyAuthentication=no nome_do_arquivo usuario@servidor:destino/nome_do_arquivo

quarta-feira, 20 de novembro de 2019

userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]

Se você acabou de atualizar o Ubuntu para as versões 16 ou 18, pode ser que você obtenha um erro de conexão em função da nova forma de operação do OpenSSH.
O OpenSSH quando mudou da versão v6.9 para a v7.0 recusa conexões de ssh devido a alterações no formato do arquivo de configuração.

No meu caso o seguinte erro aparecia no arquivo /var/log/auth.log do computador que eu queria conectar

sshd[6850]: userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes [preauth]
sshd[6850]: error: maximum authentication attempts exceeded for root from x.x.x.x port 51702 ssh2 [preauth]
sshd[6850]: Disconnecting authenticating user root x.x.x.x port 51702: Too many authentication failures [preauth]

Para resolver este erro foi preciso editar o arquivo /etc/sshd_config e acrescentar a seguinte linha no final do arquivo de configuração:

PubkeyAcceptedKeyTypes=+ssh-dss

Agora foi só reiniciar o ssh usando service ssh restart, e a conexão passou a ser reconhecida.
Esta configuração vale para todos os usuários.
Você pode acrescentar esta linha em  ~/.ssh/config para o usuário local.

Instalando pacote deb do virtualbox no Ubuntu 18 (minimal)

Neste post vou mostrar como instalar o virtualbox no Ubuntu usando o terminal
Começamos baixando o arquivo .deb do site do virtualbox. Note que a versão que estou utilizando é 6.0_6.0.14-133895. A sua pode ser diferente e portanto a URL também. Dê uma olhada no site.
$ wget -c https://download.virtualbox.org/virtualbox/6.0.14/virtualbox-6.0_6.0.14-133895~Ubuntu~bionic_amd64.deb
$ wget -c https://download.virtualbox.org/virtualbox/6.0.14/Oracle_VM_VirtualBox_Extension_Pack-6.0.14.vbox-extpack
Tendo baixado o arquivo .deb, podemos instalá-lo usando dpkg.
$ sudo dpkg -i virtualbox-6.0_6.0.14-133895~Ubuntu~bionic_amd64.deb
Você irá notar alguns erros relacionados à mensagem "Os pacotes a seguir têm dependências desencontradas". Isto pode ser resolvido com o comando abaixo.
$ sudo apt install -f
O resultado deste comando pode ser outra mensagem de erro: "This system is currently not set up to build kernel modules.". Isto pode ser resolvido com a instalação de pacotes virtuais que instalam as ferramentas necessárias para construção do kernel. O comando é mostrado abaixo.
$ sudo apt install virtualbox-guest-utils virtualbox-guest-dkms
Terminada a instalação, precisamos utilizar o comando abaixo que irá finalizar a instalação, compilando os módulos de kernel do virtualbox, e também iniciando o serviço.
$sudo /sbin/vboxconfig


           sudo /sbin/vboxconfig

quarta-feira, 6 de novembro de 2019

Alterar o tamanho do arquivo de swap no linux

Se você tem um arquivo de swap que está pequeno, você pode alterar o tamanho dele.
São poucos passos, mas você precisa que sua máquina esteja rodando com nenhum swap no momento da alteração porque você precisa desligar o swap no arquivo que irá mexer.


O primeiro passo então é desligar o swap no arquivo:



sudo swapoff /swapfile


Precisamos fazer com que o arquivo tenha o tamanho desejado.
Vou mostrar aqui 2 formas de fazer isto.

1- Utilizamos o dd para aumentar o tamanho do arquivo de swap (isto demora um pouco):

sudo dd if=/dev/zero of=/swapfile bs=1M count=14336 oflag=append conv=notrunc

Meu arquivo original é de 2GB e quero trocá-lo para 16GB.
Assim o comando acima adiciona 14GB no arquivo. Este valor está definido em count == 14 * 1024.
Os bytes adicionados ao final do arquivo estarão zerados (pois vêm de /dev/zero).

2- Ou utilizar o comando fallocate, contudo ele não retém o conteúdo antigo do swap

sudo fallocate -l 16G /swapfile


Agora basta recriar e ativar o swap usando o arquivo expandido:

sudo mkswap /swapfile
sudo swapon /swapfile




Abaixo um exemplo da execução destes comandos para que vocês vejam as mensagens retornadas por cada um.


Transforme seu Raspberry Pi em um Servidor de Desenvolvimento Completo (Debian 13 Trixie, ARM64)

  O Raspberry Pi evoluiu muito desde seus primeiros dias como uma placa para experimentos. Hoje, com o Debian 13 (Trixie) rodando em ARM64, ...