배스천 호스트를 통해 연결할 때 최소한의 입력 SSH 구성

배스천 호스트를 통해 연결할 때 최소한의 입력 SSH 구성

점프 프록시(배스천 호스트)를 통해 장치에 연결하려면 다음을 입력합니다.

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

관련 정보