Ich habe versucht, ssh-add
an einem RaspberryPi mit Raspbian zu arbeiten.
Ich kann anfangen ssh-agent
, wenn ich es tue, gibt es die folgende Ausgabe in das Terminal:
SSH_AUTH_SOCK=/tmp/ssh-06TcpPflMg58/agent.2806; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2807; export SSH_AGENT_PID;
echo Agent pid 2807;
Wenn ich renne, ps aux | grep ssh
kann ich sehen, dass es rennt.
Dann versuche ich, auszuführen ssh-add
, um meine Passphrase hinzuzufügen, und erhalte Folgendes:
Could not open a connection to your authentication agent.
Irgendwelche Ideen?
command-line
ssh
ssh-agent
Daniel Groves
quelle
quelle
eval $(ssh-agent)
Antworten:
Ihre Shell soll den von ausgegebenen Shell-Code auswerten
ssh-agent
. Führen Sie stattdessen Folgendes aus:Wenn Sie ssh-agent bereits gestartet haben, kopieren Sie es und fügen Sie es in Ihre Shell-Eingabeaufforderung ein (vorausgesetzt, Sie führen eine Bourne-ähnliche Shell aus).
ssh
befehle müssen wissen, wie man mit dem redetssh-agent
, sie kennen das aus derSSH_AUTH_SOCK
umgebungsvariablen.quelle
ssh-agent bash
tut), aber es kann nicht den Speicher eines separaten Prozesses aktualisieren, der einen Fremdbefehl ausführt (Ihre bereits laufende Shell).Probier diese:
quelle
ssh-agent /usr/bin/fish
./usr/local/bin/fish
(alternativ/usr/ports/shells/fish
). Vielen Dank an denwhereis
Befehl, der mir dabei geholfen hat, das herauszufinden.Diese Frage wurde auch auf Stackoverflow sehr gut behandelt .
quelle
`...`
. Ohne sie wird der Operator split + glob für die Ausgabe aufgerufen.Wenn Sie csh als Shell verwenden ( FreeBSD PI ), könnte dies funktionieren:
Als nächstes müssen Sie nur noch Folgendes tun:
quelle
Sie können auch die folgende Syntax verwenden:
quelle
ssh-agent sh -c "ssh-add -l"
, werden Sie feststellen, dass Sie keine Identität haben.ssh-agent sh -c "ssh-add && ssh-add -l"
wird Ihre Identität drucken.Versuchen Sie Folgendes: Gehen Sie zu
C:\$Installation_Folder$\Git\cmd
und führen Sie Folgendes aus:Es öffnet einen Befehl cmd und führt ihn
ssh-agent
richtig aus.ssh-add ~/.ssh/id_rsa
sollte dann funktionieren.quelle
Dies war verwirrend und hat 2 mögliche gute Antworten, abhängig davon, ob der Benutzer versucht, einen SSH-Schlüssel unter Linux oder Windows hinzuzufügen (wie ich es bin). Dies beantwortet wahrscheinlich nicht das OP, ist aber eine Erweiterung für Git-Bash. Ich verwende sowohl Windows als auch Ubuntu für die Entwicklung und meine Git-Installation unterscheidet sich jeweils geringfügig.
.. war eine gute Windows-Antwort, konnte aber nicht angeben, dass Sie den Git-Installationsordner über den Windows-Explorer suchen und ausführen sollten, damit die Windows-Shell nach Abschluss von Schritt 1 geöffnet wird.
"Wechseln Sie zu C: \ $ Installation_Folder $ \ Git \ cmd "
Schritt 2: Sie müssen nur doppelklicken
In Schritt 3 kehren Sie zu git-bash oder dem von Ihnen ausgeführten * nix-Terminalemulator zurück und führen ssh-add aus. Wenn Sie den Standardnamen für den öffentlichen ssh-Schlüssel verwendet haben, müssen Sie den Namen nicht hinzufügen, da ssh-add diesen automatisch verwendet.
quelle
Es gibt verschiedene Möglichkeiten, wie Sie eine Identität mit sudo verwenden können, z
sudo npm install
.Langer Weg , sondern gibt Ihnen auch root-Zugriff, so dass Sie nicht
sudo
viel verwenden müssen.sudo ssh-agent bash
Hier werden Sie nach Ihrem Passwort gefragt und danach
ssh-agent
mit den Rechten des Superbenutzers ausgeführt.cd /home/user/.ssh
Von dort kann man rennen
Kurz gesagt , nur Ihr Benutzer (es sei denn, Sie möchten viel sudo)
quelle
export
undeval
funktionieren genauso gut wie root, vorausgesetzt die Login-Shell von root ist Bourne-artig. Wenn Roots Shell csh oder tcsh ist, benutzeeval `ssh-agent -c`
root
Ihrem SSH-Agenten auch Zugriff gewähren können, indem Siesudo SSH_AUTH_SOCK="$SSH_AUTH_SOCK" npm install...
eval "$(ssh-agent)"
Wenn Sie dazu aufgefordert werden, wird eine Bash-Shell ausgeführt, die als root ausgeführt wird. Sie müssen offensichtlichssh
von dieser Shell oder ihrem Nachfolger aus starten, damit sie die SSH_AUTH_SOCK-Umgebungsvariable erben.eval "$(sudo ssh-agent)"; sudo ssh...
nicht , weil Arbeitsudo
nicht standardmäßig die SSH_AUTH_SOCK env var passieren.eval "$(ssh-agent)"
, später nachzusehen, ob ein Konfigurationsfehler vorliegt. Obwohl die aktuelle Art und Weise, wie ich diese Anleitung gegeben habe, die freie Kontrolle darüber erlaubt, welcher Benutzer Sie sein möchten, da Sie bereits als Root angemeldet sind und auf alle Benutzer zugreifen können, die sich auf dem Server befinden. Also, sobald ich es richtig zum Laufen gebracht habe, bearbeite ich meine Antwort.