점프 프록시(배스천 호스트)를 통해 장치에 연결하려면 다음을 입력합니다.
ssh -J bhost myuser@localhost -p $PORT
myuser
내 로컬 장치에 현재 로그인한 사용자의 사용자 이름과 요새 호스트에 연결된 계정입니다. 여러 개의 포트를 설정했습니다.
bhost
내 SSH .config에서 다음과 같이 정의되었습니다.
Host bhost
HostName www.example.com
PasswordAuthentication no
IdentityFile ~/.ssh/id_ed25519
내 목표는 myuser@localhost
. 대신 다음과 같이 로그인할 수 있기를 원합니다.
ssh -J bhost -p $PORT
내가 사용하는 요새 호스트나 포트는 myuser@localhost
항상 동일하므로 직접 입력할 필요가 없습니다.
답변1
~/.ssh/config
파일의 항목을 확장하면 됩니다 . 아마도 아래와 같은 것이 작동할 것입니다. 귀하의 질문이 실제로 충분한 정보를 제공하지 않는 것 같으니 시도해 보시기 바랍니다.
.ssh\config
:
# this entry is the one you're trying to ssh to
Host example
Hostname www.example.com
ProxyJump bhost
# this entry is the bastion (jump) host
Host bhost
Hostname www.example.com
Port 8022
User myuser
IdentityFile ~/.ssh/id_ed25519
본질적으로 두 개의 서로 다른 호스트를 설정하고 .ssh/config
그 중 하나가 명령을 통해 다른 호스트를 사용하도록 지시하는 것입니다 ProxyJump
.
그런 다음 ssh example
원하는 대상 시스템으로 이동하기 위해 입력하면 됩니다.
답변2
대답은 다음에서 영감을 얻었습니다.팀 케네디. 그가 말했듯이 이것은 ~/.ssh/config 파일을 통해 수행될 수 있습니다.
가능한 해결책은 다음과 같습니다.
Host bhost
HostName www.example.com
PasswordAuthentication no
IdentityFile ~/.ssh/id_ed25519
Host example1
Hostname localhost
User myuser
Port 22021
ProxyJump bhost
PasswordAuthentication no
IdentityFile ~/.ssh/id_ed25519
Host example2
Hostname localhost
User myuser
Port 28022
ProxyJump bhost
PasswordAuthentication no
IdentityFile ~/.ssh/id_ed25519
Host example3
Hostname localhost
User myuser
Port 28023
ProxyJump bhost
PasswordAuthentication no
IdentityFile ~/.ssh/id_ed25519
각 대상 장치에는 고유한 포트 번호가 필요합니다. 그들은 또한 공통 호스트 이름을 가지고 있습니다 localhost
. 물론 요새 호스트는 실제 도메인 이름입니다.
이 구성을 사용하면 다음을 통해 최종 목표를 달성할 수 있습니다.
ssh example1
또는
ssh exampleN