407 autenticação de proxy necessária

38

Quando tento instalar um software usando o Ubuntu Software center, recebo:

Failed to download repository information
Check Your Internet connection

Quando tento fazer um apt-get install something, recebo:

407  Proxy Authentication Required

Eu uso um servidor proxy que requer um nome de usuário e uma senha. Configurei o proxy do meu sistema manualmente, inserindo os números necessários no proxy do Networks e aplicando-o em todo o sistema. Acho que o problema agora é conectar meu nome de usuário e senha.

Quando uso a INTERNET via Mozilla, ele solicita especificamente meu nome de usuário e senha.

user38507
fonte

Respostas:

48

Para que o seu apt-get funcione, você deve editar seu arquivo de configuração do apt:

sudo -H gedit /etc/apt/apt.conf

E adicione Acquire::http::Proxy "http://username:password@proxyhost:port/";

A sintaxe mostrada acima deve ser rigorosamente seguida.

Essa configuração poderá falhar se o seu nome de usuário ou senha tiver um '@'. Você também pode adicionar uma configuração de proxy para outros protocolos, como FTP.

Atualização: se o seu nome de usuário ou senha contiver '@', você poderá substituí-lo por% 40 Exemplo: Se sua senha for @123inserida como %40123.

Para outros caracteres, consulte esta Codificação percentual

jaseem
fonte
4
Fiz exatamente o que você disse, mas ainda me dá o mesmo erro. Não resolveu o problema.
Delik
Eu adicionei as configurações de proxy acima, mas agora eu estou recebendo 404- não encontrado, no lugar de 407- Autenticação Proxy
Deepak
E se minha senha contiver um "@"?
Đēēpak
12

Primeiro, defina sua configuração de proxy via assistente de Linux, use a opção manualmente e aplique a configuração em todo o sistema, exatamente como esta caixa de assistente.

Adicione seu ambiente proxy. Estas são apenas configurações de exemplo ...
Abra o login do prompt de comando e edite o arquivo apt.conf:

sudo vi /etc/apt/apt.conf

Já existem 4 linhas de código começando com Adquirir palavra-chave, edite-a assim:

Acquire::http::Proxy "http://username:password@proxyhost:port/";
Acquire::https::Proxy "https://username:password@proxyhost:port/";
Acquire::ftp::Proxy "ftp://username:password@proxyhost:port/";

Nota
Se sua senha contiver caracteres especiais como @, $ ,! (por exemplo, Senha: P @ ssword), substitua os caracteres especiais por seus equivalentes de código hexadecimal por% prefixo como este:

Acquire::http::Proxy "http://username:p%40ssword@proxyhost:port/"; 

@ ==>% 40
$ ==>% 24
! ==>% 21

user226173
fonte
Eu adicionei as configurações de proxy acima, mas agora eu estou recebendo 404- não encontrado, no lugar de 407- Autenticação Proxy
Deepak
Qual é a diferença entre primeira e quarta linha ????
Moataz Elmasry
5

Se você estiver atrás de um proxy corporativo que esteja executando a autenticação NTLM, poderá usar o CNTLM:

$ sudo apt-get install cntlm
$ sudo vi /etc/cntlm.conf

Altere as configurações padrão (domínio, nome de usuário, senha e proxy). Em seguida, reinicie o serviço:

$ sudo /etc/init.d/cntlm restart

Agora você pode usar localhost:3128(porta CNTLM padrão) como o proxy de todo o sistema para o Ubuntu.

Verifique http://cntlm.sourceforge.net/ para obter documentos.

theogfx
fonte
7
Para começar sudo apt-get install cntlma trabalhar, primeiro você precisa passar por esse proxy.
Andrew Savinykh
2

Eu acho que este tutorial deve ajudá-lo.

Clique na guia Rede, selecione a opção Configuração manual do proxy e insira o servidor proxy, detalhes da porta. Se você tiver nome de usuário, senha, clique em Autenticação para inserir esses detalhes, clique em ok

(em http://www.ubuntugeek.com/how-to-configure-ubuntu-desktop-to-use-your-proxy-server.html )

Para invocá-lo para todos os programas lançados em um shell, sugiro que você o adicione ao seu /etc/bash.bashrcuso gksudo gedit /etc/bash.bashrcpara aplicá-lo em todo o sistema a todas as sessões do bash ou no espaço do usuário ~/.bashrc.

No que diz respeito ao Synaptic, na guia PreferencesSob Networkvocê parece ser capaz de definir a autenticação para seus proxies. Isso parece ser específico para Synaptic, no entanto.

bkzland
fonte
Eu uso o Ubuntu 11, u pode me ajudar a alcançar synaptic #
38387 dec38
também onde exatamente no bash.bashrc é necessário conectar o nome de usuário e a senha
user38507
export http_proxy=http://username:password@proxyhost:port/
Panther
eu dei o comando sudo echo "export http_proxy = swastik: [email protected]: 8081 " >> /etc/bash.bashrc mesmo agora eu recebo o mesmo erro
user38507
2

Uma boa alternativa é usar o Synaptic Package ManagerInstale o Synaptic , onde você pode especificar configurações de proxy independentes do sistema e também armazenar nome de usuário e senha.

Configurações de proxy

No entanto, isso não mudará o proxy do Software Center.

inflamar
fonte
2

Se o seu nome de usuário estiver separado por espaço, use:

export http_proxy='http://Pankaj Kumar Pandit:[email protected]:3128/'

Se o seu nome de usuário não estiver separado por espaço, use:

export http_proxy=http://Pankaj_Kumar_Pandit:[email protected]:3128/

A diferença é a adição de abertura e fechamento '.

PANKAJ KUMAR
fonte
2

Nas versões mais recentes do Ubuntu, você pode usar Configurações do sistema> Rede> Proxy de rede e, quando clicar "apply system wide", modifica as configurações de proxy em locais diferentes, pelo menos incluindo o /etc/apt/sources.listarquivo, NO ENTANTO ...

Não possui nenhum mecanismo para solicitar autenticação. Não faço ideia por que ninguém fez parte disso ainda, mas por isso, se você precisar de autenticação, precisará colocar sua senha e nome de usuário também neste formato:

username:[email protected]

Se sua senha ou nome de usuário tiver caracteres especiais, incluindo @ou #ou !ou o que for, você provavelmente precisará usar o código de caractere com formato HTML para qualquer um desses caracteres especiais. Consulte esta página para saber como você pode: http://www.obkb.com/dcljr/charstxt.html

Yfrwlf
fonte
1

Eu também estava enfrentando o mesmo problema. Então eu vim a conhecer o CNTLM. Agora funciona muito bem. Veja como configurar o CNTLM aqui.

irfan_np
fonte
2
Embora isso possa teoricamente responder à pergunta, seria preferível incluir aqui as partes essenciais da resposta e fornecer o link para referência.
Oyibo
Obrigado! Esta foi a única resposta que realmente me ajudou. Outras respostas (que eu já sabia) estão assumindo que o proxy está usando autenticação HTTP básica, o que não era o meu caso.
Alexander Amelkin
1

Eu criei um script python para definir as configurações de proxy no Ubuntu

Suponha a seguinte configuração, você precisa substituir em locais relevantes

  • proxy_address 172.16.26.214
  • proxy_port 3128
  • proxy_username king
  • rainha proxy_password

Fiz um vídeo que mostra todas as etapas:

https://www.youtube.com/watch?v=eBtzKa-dvJg

Os passos são detalhados aqui:

  • Primeiro clique no Dash
  • Na caixa de pesquisa, digite "Proxy" (sem aspas)
  • Clique em "Rede" em Aplicativos
  • Selecione "Proxy de Rede"
  • Selecione Manual
  • Digite o endereço e a porta do proxy
  • Aplique. Digite a senha do sistema para confirmar

Faça o download do script setproxy.py

https://pastebin.com/MbBHta8g

Digamos que você salvou o setproxy.pyna Downloadspasta

  • Tipo de terminal aberto
  • cd ~ / Downloads

Comando Geral:
sudo python setproxy.py proxy_address proxy_port proxy_username proxy_password
Para nosso exemplo

  • sudo python setproxy.py 172.16.26.214 3128 king queen

No caso de proxy simples Sem autenticação, o comando é:

  • sudo python setproxy.py 172.16.26.214 3128

Caso você tenha python 3executado acima python2.7 , os comandos serão parecidos

  • sudo python2.7 setproxy.py 172.16.26.214 3128
  • sudo python2.7 setproxy.py 172.16.26.214 3128 king queen
Mayank Agarwal
fonte
1
Usar o dropbox ou a cópia para armazenar scripts é muito ruim. Você deve usar o github ou pelo menos paste.bin
Quan To
0

Você também pode tentar os seguintes comandos.

Para conexão http - exportação:

http_proxy="http://username:password@proxy_server_address:port_no"

Para conexão https - exportação:

https_proxy="https://username:password@proxy_server_address:port_no"

E da mesma forma para ftp e outras conexões.

darkdefender27
fonte