Wenn Sie sich auf einem Linux-Server befinden und sich in einer Umgebung befinden, auf die Sie von außen nicht zugreifen können, melden Sie sich häufig über den Plattformserver an.
Es ist mühsam, jedes Mal den folgenden Befehl einzugeben, um sich über die Plattform anzumelden, und es kann problematisch sein, zu verwechseln, auf welchem Server Sie arbeiten. Beschreiben Sie daher den Anmeldezielserver in der ssh-Konfiguration. Es ist praktisch.
ssh -i "xxxxxxx.pem" [email protected]
Dies ist der Fall bei sshing in 3 Schritten wie "lokales Terminal → Bastion → Bastion-2 → interner Server".
Beschreiben Sie wie folgt in .ssh / config
.
Host bastion
HostName bastion.com
User user
IdentityFile ~/.ssh/id_rsa
Host bastion-2
HostName 10.1.2.3
User user
IdentityFile ~/.ssh/id_rsa
ProxyCommand ssh -CW %h:%p bastion 2> /dev/null
Host internal-server
HostName 172.30.1.2
User internal-user
IdentityFile ~/.ssh/internal-server.pem
ProxyCommand ssh -CW %h:%p bastion-2 2> /dev/null
In diesem Beispiel wird IdentityFile angegeben. Beachten Sie jedoch die Berechtigungen, da alle IdentityFiles auf dem lokalen Terminal gespeichert werden müssen. Um "ProxyCommand" anzugeben, ssh den ursprünglichen Verbindungsziel-Host "% h" (interner Server) und seinen Port "% p" über Bastion-2 und gebe die Standardfehlerausgabe in die Datei "/ dev" aus. Die Operation besteht darin, in "/ null" zu schreiben.
Im obigen Fall können Sie sich direkt vom lokalen Terminal aus beim internen Server anmelden, indem Sie einfach "ssh internal-server" schreiben.
Wenn Sie "scp internal-server: ./Copy source / * / Users / Copy destination" schreiben, können Sie Dateien sofort auf den internen Server kopieren (in diesem Fall vom internen Server auf das lokale Terminal kopieren). Ich kann.