직장에서는 모든 "실제" 서버에 액세스하기 위해 포털 서버를 운영합니다. 기본적으로 "실제"(웹) 서버 중 하나에 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>