407 Proxy-Authentifizierung erforderlich

38

Wenn ich versuche, eine Software mit Ubuntu Software Center zu installieren, erhalte ich:

Failed to download repository information
Check Your Internet connection

Wenn ich versuche, a zu machen apt-get install something, erhalte ich:

407  Proxy Authentication Required

Ich verwende einen Proxyserver, für den ein Benutzername und ein Kennwort erforderlich sind. Ich habe meinen System-Proxy manuell eingestellt, indem ich die erforderlichen Nummern in den Netzwerk-Proxy eingegeben und ihn systemweit angewendet habe. Ich vermute, das Problem besteht jetzt darin, meinen Benutzernamen und mein Passwort einzugeben.

Wenn ich INTERNET über Mozilla verwende, werde ich speziell nach meinem Benutzernamen und Passwort gefragt.

user38507
quelle

Antworten:

48

Damit Ihre apt-get funktioniert, sollten Sie Ihre apt-Konfigurationsdatei bearbeiten:

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

Und füge hinzu Acquire::http::Proxy "http://username:password@proxyhost:port/";

Die oben gezeigte Syntax sollte genau befolgt werden.

Diese Konfiguration kann fehlschlagen, wenn in Ihrem Benutzernamen oder Kennwort ein '@' enthalten ist. Sie können auch eine Proxy-Konfiguration für andere Protokolle wie FTP hinzufügen.

Update: Wenn Ihr Benutzername oder Passwort ein "@" enthält, können Sie es durch "% 40" ersetzen. Beispiel: Wenn Sie ein Passwort haben, @123geben Sie es ein als %40123.

Für andere Zeichen siehe diese Prozent-Kodierung

jaseem
quelle
4
Ich habe genau das getan, was Sie gesagt haben, aber es gibt mir immer noch den gleichen Fehler. Es hat das Problem nicht gelöst.
DeLiK
Ich habe die obigen Proxy-Einstellungen hinzugefügt, aber jetzt erhalte ich 404-Not Found anstelle von 407-Proxy Authentication
Deepak
Was ist, wenn mein Passwort ein "@" enthält?
Đēēpak
12

Stellen Sie Ihre Proxy-Einstellungen zuerst manuell über den Linux-Assistenten ein und wenden Sie die Einstellungen systemweit an, genau wie in diesem Assistentenfenster.

Fügen Sie Ihre Proxy-Umgebung hinzu. Dies sind nur Beispieleinstellungen ...
Öffnen Sie die Anmeldung an der Eingabeaufforderung und bearbeiten Sie die Datei apt.conf:

sudo vi /etc/apt/apt.conf

Es gibt bereits 4 Codezeilen, die mit Acquire key word beginnen. Bearbeiten Sie den Code folgendermaßen :

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

Hinweis
Wenn Ihr Passwort Sonderzeichen wie @, $ ,! (z. B. Passwort: P @ ssword) Ersetzen Sie dann die Sonderzeichen durch ihre Hex-Code-Entsprechungen mit dem folgenden% -Präfix:

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

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

user226173
quelle
Ich habe die obigen Proxy-Einstellungen hinzugefügt, aber jetzt erhalte ich 404-Not Found anstelle von 407-Proxy Authentication
Deepak
Was ist der Unterschied zwischen erster und vierter Zeile ????
Moataz Elmasry
5

Wenn Sie sich hinter einem Enterprise-Proxy befinden, auf dem die NTLM-Authentifizierung ausgeführt wird, können Sie CNTLM verwenden:

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

Ändern Sie die Standardeinstellungen (Domain, Benutzername, Passwort und Proxy). Starten Sie dann den Dienst neu:

$ sudo /etc/init.d/cntlm restart

Sie können jetzt localhost:3128(Standard-CNTLM-Port) als systemweiten Proxy für Ubuntu verwenden.

Überprüfen Sie http://cntlm.sourceforge.net/ auf Dokumente.

theogfx
quelle
7
Um zur sudo apt-get install cntlmArbeit zu kommen , müssen Sie zuerst diesen Proxy durchgehen.
Andrew Savinykh
2

Ich denke, dieses Tutorial sollte Ihnen helfen.

Klicken Sie auf die Registerkarte Netzwerk, wählen Sie die Option Manuelle Proxy-Konfiguration und geben Sie Ihren Proxy-Server und die Port-Details ein. Wenn Sie einen Benutzernamen und ein Passwort haben, klicken Sie auf Authentifizierung, um diese Details einzugeben, klicken Sie auf OK

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

Um es für alle in einer Shell gestarteten Programme aufzurufen, würde ich vorschlagen, dass Sie es entweder zu Ihrer /etc/bash.bashrcVerwendung hinzufügen gksudo gedit /etc/bash.bashrc, um es systemweit für alle Bash-Sitzungen anzuwenden, oder zu Ihrem Benutzerbereich ~/.bashrc.

Soweit Synaptische geht, in der Preferencesunter der NetworkRegisterkarte scheinen Sie für Ihre Proxies Satz Authentifizierung zu können. Dies scheint jedoch spezifisch für Synaptic zu sein.

bkzland
quelle
Ich benutze Ubuntu 11, kannst du mir helfen, synaptic
user38507
auch wo genau in der bash.bashrc muss man den benutzernamen und das passwort eingeben
user38507
export http_proxy=http://username:password@proxyhost:port/
Panther
Ich gab den Befehl sudo echo "export http_proxy = swastik: [email protected]: 8081 " >> /etc/bash.bashrc auch jetzt bekomme ich den gleichen Fehler
user38507 20.12.11
2

Eine gute Alternative ist die Verwendung von Synaptic Package ManagerInstallieren Sie Synaptic , wo Sie systemunabhängige Proxy-Einstellungen festlegen und auch Benutzername und Passwort speichern können.

Proxy-Einstellungen

Der Proxy für Software Center wird dadurch jedoch nicht geändert.

entzünden
quelle
2

Wenn Ihr Benutzername durch ein Leerzeichen getrennt ist, verwenden Sie:

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

Wenn Ihr Benutzername nicht durch ein Leerzeichen getrennt ist, verwenden Sie:

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

Der Unterschied ist das Hinzufügen von Öffnen und Schließen '.

PANKAJ KUMAR
quelle
2

In den neuesten Versionen von Ubuntu können Sie Systemeinstellungen> Netzwerk> Netzwerk-Proxy verwenden. Wenn Sie darauf klicken "apply system wide", werden die Proxy-Einstellungen an verschiedenen Stellen /etc/apt/sources.listgeändert , zumindest einschließlich der Datei, JEDOCH ...

Es gibt keinen Mechanismus, um zur Authentifizierung aufzufordern. Keine Ahnung, warum noch niemand diesen Teil davon gemacht hat, aber aus diesem Grund müssen Sie Ihr Passwort und Ihren Benutzernamen in diesem Format eingeben, wenn Sie eine Authentifizierung benötigen:

username:[email protected]

Wenn Ihr Kennwort oder Benutzername Sonderzeichen enthält, einschließlich @oder #oder !was auch immer, müssen Sie wahrscheinlich den HTML-Code für eines dieser Sonderzeichen verwenden. Wie das geht, erfahren Sie auf dieser Seite: http://www.obkb.com/dcljr/charstxt.html

Yfrwlf
quelle
1

Ich hatte auch das gleiche Problem. Dann lernte ich CNTLM kennen. Jetzt funktioniert es wirklich gut. Hier erfahren Sie, wie Sie CNTLM konfigurieren.

irfan_np
quelle
2
Während dies theoretisch die Frage beantworten mag, wäre es vorzuziehen , die wesentlichen Teile der Antwort hier aufzunehmen und den Link als Referenz bereitzustellen.
Oyibo
Danke! Dies war die einzige Antwort, die mir wirklich geholfen hat. Andere Antworten (die ich bereits kannte) gehen davon aus, dass der Proxy die Standard-HTTP-Authentifizierung verwendet, was nicht mein Fall war.
Alexander Amelkin
1

Ich habe ein Python-Skript erstellt, um die Proxy-Einstellungen in Ubuntu festzulegen

Nehmen Sie die folgende Einstellung an, die Sie an relevanten Stellen ersetzen müssen

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

Ich habe ein Video gemacht, das Sie durch alle Schritte führt:

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

Die einzelnen Schritte sind hier aufgeführt:

  • Klicken Sie zuerst auf Dash
  • Im Suchfeld "Proxy" eingeben (ohne Anführungszeichen)
  • Klicken Sie unter Anwendungen auf "Netzwerk"
  • Wählen Sie "Netzwerkproxy"
  • Wählen Sie Manuell
  • Geben Sie die Proxy-Adresse und den Proxy-Port ein
  • Sich bewerben. Geben Sie zur Bestätigung Ihr Systemkennwort ein

Laden Sie das Skript herunter setproxy.py

https://pastebin.com/MbBHta8g

Angenommen, Sie haben die setproxy.pyim DownloadsOrdner gespeichert

  • Öffnen Sie den Terminaltyp
  • CD ~ / Downloads

Allgemeiner Befehl:
sudo python setproxy.py proxy_address proxy_port proxy_username proxy_password
Für unser Beispiel

  • sudo python setproxy.py 172.16.26.214 3128 king queen

Bei einem einfachen Proxy ohne Authentifizierung lautet der Befehl:

  • sudo python setproxy.py 172.16.26.214 3128

Wenn Sie python 3und über ausgeführt haben, sehen python2.7 die Befehle so aus

  • sudo python2.7 setproxy.py 172.16.26.214 3128
  • sudo python2.7 setproxy.py 172.16.26.214 3128 king queen
Mayank Agarwal
quelle
1
Die Verwendung von Dropbox oder Copy zum Speichern von Skripten ist sehr schlecht. Sie sollten mindestens github oder paste.bin verwenden
Quan To
0

Sie können auch die folgenden Befehle ausführen.

Für http-Verbindung - Export:

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

Für https-Verbindung - Export:

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

Und ebenso für FTP und andere Verbindungen.

darkdefender27
quelle