Führen Sie einen Remote-Befehl mit der Datei ssh config aus
32
Ich möchte in der Lage sein, einen Befehl für die Ausführung von ssh login auf einem Server einzurichten, ohne ihn eingeben zu müssen. Grundsätzlich suche ich nach der ssh-Konfigurationsdatei, die äquivalent ist zu:
Es ist auch möglich, einen Befehl in Ihre Datei mit autorisierten Schlüsseln einzufügen. ( ~/.ssh/authorized_keys). Auf diese Weise können Sie einen benutzerdefinierten Befehl für jeden Schlüssel in der Datei ausführen. Ich verwende dies, um Shell-Verbindungen über meine Firewall weiterzuleiten. Das Ergebnis ist, dass ich zu einem Host ssh kann und die Sitzung automatisch mit einem Host innerhalb des Netzwerks verbindet. Der authorized_keysEintrag sieht so aus:
command="ssh -Tq <hostname> \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... the rest of the key ...
Insbesondere ist die Weiterleitung für meine Gitolite-Instanz. Dies ermöglicht einen einfachen Zugriff von außen, ohne den Gitolit-Wirt direkt einem externen Zugriff auszusetzen. Weitere Informationen finden Sie in der Manpage. ( http://linux.die.net/man/8/sshd )
Das ist großartig, ich wusste nicht, dass du das kannst. +1
Brian Wigginton
3
Wenn Sie den Befehl in die Datei "authorized_keys" einfügen, werden Dinge wie "rsync" und "scp" nicht mehr ausgeführt. Das Öffnen des Terminals ist fehlgeschlagen, kein Terminal. Beachten Sie auch, dass Sie sich nicht anmelden können, wenn der Befehl fehlschlägt. Ich habe das auf die harte Tour entdeckt.
Wenn Sie OpenSSH ausführen, sieht es so aus, als würde
~/.ssh/rc
es beim Anmelden ausgeführt .quelle
/.ssh/rc
sich auf dem Client- oder Server-Computer? Sieht aus wie aus den Dokumenten des Servers, oder?rc
scheint die Datei nicht zuscreen
Sie könnten einen Bash-Alias einrichten.
Fügen Sie in Ihre .bashrc-Datei Folgendes ein:
Dann müssten Sie nicht einmal den Hostnamen eingeben.
Wenn Sie dies mit mehreren Hosts tun möchten (und mehrere Aliase nicht funktionieren), verwenden Sie ein kleines Skript:
quelle
Sie können dies in Ihrem System lösen
.ssh/config file
, indem Sie für den Host, auf dem Sie einen Befehl ausführen möchten, Folgendes hinzufügenWo
<some command>
ist dein Befehl? Dies funktioniert auch mit screen oder tmux.quelle