segunda-feira, 31 de dezembro de 2018

Assistir a vídeos do YouTube diretamente no terminal GNU/Linux (streaming)

Comando para assistir a vídeos do YouTube (e muitos outros sites) diretamente no terminal GNU/Linux sem que o ambiente gráfico (Servidor X) esteja em execução (na verdade, o Servidor X nem precisa ser instalado):

youtube-dl --quiet --youtube-skip-dash-manifest --hls-prefer-ffmpeg URL --output - | mplayer -quiet -fs -vo fbdev2 -vf scale=1366:768 -

Sistema Operacional utilizado: GNU/Linux From Scratch 8.1 (System V)
Versão do youtube-dl: 2018.12.17
Versão do MPlayer: 1.3.0-7.2.0 (C) 2000-2016 MPlayer Team

É isso.

Jamenson Ferreira Espindula de Almeida Melo
Usuário GNU/Linux nº 166197
https://linuxcounter.net/cert/166197.png

Impressão digital da chave:
234D 1914 4224 7C53 BD13  6855 2AE0 25C0 08A8 6180

terça-feira, 29 de maio de 2018

Conexões seguras (SSH) com chaves GnuPG

É possível utilizar um par de chaves geradas no GNU Privacy Guard (GnuPG) (https://www.gnupg.org/) em conexões seguras (SSH) (https://www.openssh.com/). A configuração é um pouco mais trabalhosa, porém a pessoa utiliza uma só chave pública em todos os acessos, ou seja, não existe a necessidade de gerar um par de chaves em vários computadores. As seguintes configurações foram testadas nos ambientes Debian GNU/Linux 9 (Stretch) e Debian GNU/Linux 8 (jessie):


1ª tarefa: configurar o arquivo </etc/bash.bashrc> (no Debian GNU/Linux 9 - stretch):

export GPG_TTY=$(tty)


= = = = = = = = = =
= = = = = = = = = =


2ª tarefa: criar uma subchave do GnuPG específica para autenticação.


= = = = = = = = = =
= = = = = = = = = =


3ª tarefa: indicar para o aplicativo "gpg-agent" qual é a subchave pública a ser utilizada para autenticação (no arquivo $HOME/.gnupg/sshcontrol, acrescentar o valor da "keygrip" da subchave pública).

gpg --list-public-keys --with-keygrip


O comando acima exibe todas as chaves e subchaves públicas.


= = = = = = = = = =
= = = = = = = = = =


4ª tarefa: exportar a subchave pública (para colocar no arquivo $HOME/.ssh/authorized_keys no computador remoto).

gpg2 --export-ssh-key 08a86180

Esse comando exporta todas as subchaves públicas, cujo uso foi configurado para autenticação, já no formato apropriado para se incluir no arquivo "$HOME/.ssh/authorized_keys".


= = = = = = = = = =
= = = = = = = = = =


5ª tarefa: incluir a subchave apropriada para autenticação (exibida na 4ª tarefa) no arquivo apropriado dentro do diretório </$HOME/$USER/.ssh/>:


Na hipotese de uma chave RSA:


gpg --export-ssh-key 08a86180 > /$HOME/$USER/.ssh/.ssh/id_rsa


Configurar as permissões de acesso ao arquivo apropriadamente:


chmod -v 0600 /$HOME/$USER/.ssh/id_rsa


Adicionar a subchave ao agente gerenciador de chaves do OpenSSH:


ssh-add


Obs.: esse comando exibirá a seguinte mensagem:


Enter passphrase for /$HOME/$USER/.ssh/id_rsa:


Verificar se a subchave foi adicionada:


ssh-add -l


Esse comando confirma se a chave foi adicionada.


= = = = = = = = = =
= = = = = = = = = =


6ª tarefa: habilitar o suporte a SSH no aplicativo "gpg-agent" (no arquivo "$HOME/.gnupg/gpg-agent.conf", acrescentar as seguintes linhas):

enable-ssh-support
pinentry-program /usr/bin/pinentry-tty


= = = = = = = = = =
= = = = = = = = = =



7ª tarefa: inicializar a variável de ambiente "SSH_AUTH_SOCK", bem como o aplicativo "gpg-agent" automaticamente ao se logar (no arquivo "$HOME/.bash_profile", acrescentar as seguintes linhas):


export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
gpg-connect-agent -vv updatestartuptty /bye > /dev/null 2>&1


Obs.: a segunda linha foi incluída, também, no arquivo </etc/profile>, pois o aplicativo "pinentry" estava com mau funcionamento quando executado dentro do aplicativo "screen" (GNU Screen).

Obs.: a justificativa para se incluir a mesma linha em dois arquivos é que o arquivo <.bash_profile> é lido quando do login no sistema (shell de login interativo), ao passo que o arquivo </etc/profile> é lido quando se acessa, por exemplo, o aplicativo "screen"; o aplicativo "su"; o aplicativo "chroot" (ou seja, shell de não-login interativo; inicializa-se um novo shell, porém não a partir de um login).


= = = = = = = = = =
= = = = = = = = = =


Obs.: no Debian GNU/Linux 8 (jessie), a configuração é diferente (no arquivo $HOME/.bashrc):


gpg-agent --daemon --enable-ssh-support --write-env-file "${HOME}/.gpg-agent-info"

if [ -f "${HOME}/.gpg-agent-info" ]; then
       . "${HOME}/.gpg-agent-info"
       export GPG_AGENT_INFO
       export SSH_AUTH_SOCK
fi



Jamenson Ferreira Espindula de Almeida Melo
Usuário GNU/Linux nº 166197
https://linuxcounter.net/cert/166197.png

Impressão digital da chave:
234D 1914 4224 7C53 BD13  6855 2AE0 25C0 08A8 6180