OpenSSH-9.4p1

Introdução ao OpenSSH

O pacote OpenSSH contém clientes ssh e o processo de segundo plano sshd. Isso é útil para encriptar a autenticação e o tráfego subsequente em uma rede de comunicação. Os comandos ssh e scp são implementações seguras do telnet e do rcp respectivamente.

Esse pacote é conhecido por construir e funcionar corretamente usando uma plataforma LFS 12.0.

Informação do Pacote

  • Transferência (HTTP): https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.4p1.tar.gz

  • Soma de verificação MD5 da transferência: 4bbd56a7ba51b0cd61debe8f9e77f8bb

  • Tamanho da transferência: 1,7 MB

  • Espaço em disco estimado exigido: 45 MB (adicionar 22 MB para testes)

  • Tempo de construção estimado: 0.2 SBU (Using parallelism=4; running the tests takes about 20 minutes, irrespective of processor speed)

Dependências do OpenSSH

Opcionais

GDB-13.2 (para testes), Linux-PAM-1.5.3, Aplicativos do Xorg (ou Ambiente de construção do "Xorg", vejam-se Explicações do Comando), MIT Kerberos V5-1.21.2, Which-2.21 (para testes), libedit, LibreSSL Portável, OpenSC e libsectok

Opcional em Tempo de Execução (usado somente para coletar entropia)

Net-tools-2.10 e Sysstat-12.7.2

Observações de Editor(a): https://wiki.linuxfromscratch.org/blfs/wiki/OpenSSH

Instalação do OpenSSH

O OpenSSH executa como dois processos ao se conectar a outros computadores. O primeiro processo é um processo privilegiado e controla a emissão de privilégios conforme necessário. O segundo processo se comunica com a rede de intercomunicação. Etapas adicionais de instalação são necessárias para configurar o ambiente adequado, que são realizadas emitindo os seguintes comandos como o(a) usuário(a) root:

install -v -g sys -m700 -d /var/lib/sshd &&

groupadd -g 50 sshd        &&
useradd  -c 'sshd PrivSep' \
         -d /var/lib/sshd  \
         -g sshd           \
         -s /bin/false     \
         -u 50 sshd

Instale o OpenSSH executando os seguintes comandos:

./configure --prefix=/usr                           \
            --sysconfdir=/etc/ssh                    \
            --with-privsep-path=/var/lib/sshd        \
            --with-default-path=/usr/bin             \
            --with-superuser-path=/usr/sbin:/usr/bin \
            --with-pid-dir=/run                      &&
make

Para testar os resultados, emita: make -j1 tests.

Agora, como o(a) usuário(a) root:

make install &&
install -v -m755   contrib/ssh-copy-id /usr/bin     &&

install -v -m644    contrib/ssh-copy-id.1 \
                    /usr/share/man/man1              &&
install -v -m755 -d /usr/share/doc/openssh-9.4p1     &&
install -v -m644    INSTALL LICENCE OVERVIEW README* \
                    /usr/share/doc/openssh-9.4p1

Explicações do Comando

--sysconfdir=/etc/ssh: Isso evita que os arquivos de configuração sejam instalados em /usr/etc.

--with-default-path=/usr/bin e --with-superuser-path=/usr/sbin:/usr/bin: Esses configuram PATH consistente com o pacote Shadow do LFS e do BLFS.

--with-pid-dir=/run: Isso evita que OpenSSH se refira ao obsoleto /var/run.

--with-pam: Esse parâmetro habilita o suporte Linux-PAM na construção.

--with-xauth=$XORG_PREFIX/bin/xauth: Configure o local padrão para o binário xauth para autenticação do X. A variável de ambiente XORG_PREFIX deveria estar configurada seguindo Ambiente de construção do "Xorg". Isso também pode ser controlado a partir de sshd_config com a palavra-chave XAuthLocation. Você pode omitir essa chave se o Xorg já estiver instalado.

--with-kerberos5=/usr: Essa opção é usada para incluir suporte a Kerberos 5 na construção.

--with-libedit: Essa opção habilita a edição de linha e recursos de histórico para o sftp.

Configurando o OpenSSH

Arquivos de Configuração

~/.ssh/*, /etc/ssh/ssh_config e /etc/ssh/sshd_config

Não existem mudanças exigidas para nenhum desses arquivos. No entanto, você possivelmente deseje visualizar os arquivos do /etc/ssh/ e fazer quaisquer mudanças apropriadas para a segurança do teu sistema. Uma mudança recomendada é a de desabilitar o login do(a) root via ssh. Execute o seguinte comando como o(a) usuário(a) root para desabilitar o login do(a) root via ssh:

echo "PermitRootLogin no" >> /etc/ssh/sshd_config

Se quiser estar apto(a) a se logar sem digitar tua senha, crie primeiro ~/.ssh/id_rsa e ~/.ssh/id_rsa.pub com o ssh-keygen e depois copie ~/.ssh /id_rsa.pub para ~/.ssh/authorized_keys no computador remoto no qual deseja se logar. Você precisará mudar NOME_USUARIO(A)_REMOTO e NOME_DISPOSITIVO_REMOTO para o nome de usuário(a) e nome do dispositivo do computador remoto e também precisará inserir tua senha para que o comando ssh-copy-id seja bem-sucedido:

ssh-keygen &&
ssh-copy-id -i ~/.ssh/id_rsa.pub NOME_USUARIO(A)_REMOTO@NOME_DISPOSITIVO_REMOTO

Tão logo tenha obtido logins sem senha funcionando, atualmente é mais seguro que se logar com uma senha (já que a chave privada é muito mais longa que as senhas da maioria das pessoas). Se você gostaria de desabilitar logins de senha agora, como o(a) usuário(a) root:

echo "PasswordAuthentication no" >> /etc/ssh/sshd_config &&
echo "KbdInteractiveAuthentication no" >> /etc/ssh/sshd_config

Se você adicionou suporte Linux-PAM e deseja que o ssh o use, então precisará adicionar um arquivo de configuração para o sshd e habilitar o uso do Linux-PAM. Observe que o ssh somente usa PAM para verificar senhas; se tiver desabilitado os logins de senha, estes comandos não são necessários. Se você deseja usar o PAM, emita os seguintes comandos como o(a) usuário(a) root:

sed 's@d/login@d/sshd@g' /etc/pam.d/login > /etc/pam.d/sshd &&
chmod 644 /etc/pam.d/sshd &&
echo "UsePAM yes" >> /etc/ssh/sshd_config

Informação adicional de configuração pode ser encontrada nas páginas de manual para sshd, ssh e ssh-agent.

Unidade do systemd

Para iniciar o servidor SSH na inicialização do sistema, instale a unidade sshd.service incluída no pacote blfs-systemd-units-20230816.

make install-sshd

Conteúdo

Aplicativos Instalados: scp, sftp, ssh, ssh-add, ssh-agent, ssh-copy-id, ssh-keygen, ssh-keyscan e sshd
Bibliotecas Instaladas: Nenhum(a)
Diretórios Instalados: /etc/ssh, /usr/share/doc/openssh-9.4p1 e /var/lib/sshd

Descrições Curtas

scp

é um aplicativo de cópia de arquivo que age como rcp, exceto que usa um protocolo encriptado

sftp

é um aplicativo do tipo FTP que funciona ao longo dos protocolos SSH1 e SSH2

ssh

é um aplicativo cliente do tipo rlogin/rsh, exceto que usa um protocolo encriptado

sshd

é um processo de segundo plano que escuta solicitações de login do ssh

ssh-add

é uma ferramenta que adiciona chaves ao ssh-agent

ssh-agent

é um agente de autenticação que consegue armazenar chaves privadas

ssh-copy-id

é um conjunto de comandos sequenciais que habilita logins em máquinas remotas usando chaves locais

ssh-keygen

é uma ferramenta de geração de chave

ssh-keyscan

é um utilitário para coletar chaves públicas de dispositivo a partir de vários dispositivos