bash 별칭/함수의 SSH가 두 번 [중복]

bash 별칭/함수의 SSH가 두 번 [중복]

직장에서는 모든 "실제" 서버에 액세스하기 위해 포털 서버를 운영합니다. 기본적으로 "실제"(웹) 서버 중 하나에 SSH로 연결해야 하는 사람은 먼저 포털에 SSH로 연결하므로 다음과 같습니다.

mike@localhost#    ssh mike@portal
#ssh login notice stuff blah blah
mike@portal#    ssh mike@webserver

저는 이 두 단계를 하나로 결합하는 bash 별칭이나 함수를 작성하려고 합니다. 나는 확실히 시스템 관리자가 아니기 때문에 추가 소프트웨어를 설치하지 않고 가능한 한 간단하게 유지하는 것이 좋을 것입니다.

다음을 시도했지만 원하는 대로 진행되지 않습니다.

ssh mike@portal; ssh mike@webserver #terminates on terminal for portal
ssh mike@portal `ssh mike@webserver` #hangs
ssh mike@portal ssh mike@webserver #connects, but gives error "pseudo-terminal will not be allocated because stdin is not a terminal"

어떤 아이디어나 해결 방법이 있나요?

답변1

ssh mike@portal ssh mike@webserver 실행

키를 사용하여 연결한다고 가정하면 대화형 암호를 사용하는 경우 더 많은 플래그가 필요합니다.

답변2

다음을 다음 항목에 입력하세요 ~/.ssh/config.

Host webserver
    ProxyCommand ssh -A -e none portal nc %h 22

그러면 ssh webserver작동할 준비가 된 것입니다. Netcat이 컴퓨터에 설치되어 있어야 합니다 portal.

답변3

이는 매우 일반적인 요구 사항입니다.

일방 통행(http://www.eng.cam.ac.uk/help/jpmg/ssh/two-hop-tunnel.html)는 터널을 사용하고 있습니다.

ssh -f -L 51526:server.example.com:22 -1 gateway.example.com sleep 3600

그 다음에

ssh -p 51526 localhost

답변4

여러 웹 서버에 대해 이야기하고 있는 것 같습니다. 따라서 가장 좋은 방법은 아마도 다음을 귀하의$HOME/.ssh/config

Host portal
    Hostname portal
    User mike
    StrickHostKeyChecking yes
    LocalForward 1024 webserver1:22
    LocalForward 1025 webserver2:22
    LocalForward 1026 webserver3:22
    ...

Host webserver1
    Hostname localhost
    Port 1024
    User mike

Host webserver2
    Hostname localhost
    Port 1025
    User mike

...

그런 다음 연결을 인스턴스화하면 됩니다.

ssh portal

그런 다음 다음을 사용하여 모든 웹 서버에 연결할 수 있습니다.

ssh webserver<n>

관련 정보