게이트웨이 뒤에 있는 시스템에 로그인하기 위해 SSH 터널을 사용하고 있습니다. 문제는 게이트웨이 서버의 ~/.ssh/config에 ssh_alias가 정의되어 있다는 것입니다. 키와 IP가 어딘가에 설정되어 있습니다. 그러나 이러한 별칭은 nc 명령에는 적용되지 않습니다. nc 명령에 별칭을 사용하고 게이트웨이 서버에서 수행된 키 설정을 사용할 수 있는 방법이 있습니까? 따라서 로컬 서버에서 키를 다운로드할 필요가 없습니다. 예: 게이트웨이 서버
~/.ssh/config
Host test
HostName 192.168.1.10
IdentityFile ~/keys/test
User test
로컬 서버~/.ssh/config
Host test
ProxyCommand ssh gateway nc %h %p
nc가 테스트에 대해 모르기 때문에 다음 구성은 실패합니다.
답변1
질문하신 내용은 거의 동일합니다이것.
게이트웨이에서 로컬 상자로 키를 복사하지 않으려는 경우 해결 방법은 해당 게시물(및 아래)의 방법 1(bash 별칭)을 사용하는 것입니다. ssh_config가 원하는 것을 수행하지 않습니다. ssh_config 를 포함하여 앨리어싱과 터널링 방법의 차이점에 대한 자세한 설명이 있습니다 ProxyCommand
.
방법 1
에서 ~/.bashrc
다음 줄을 추가합니다.
alias ssh-test='ssh -t gateway ssh test@test'
명령 프롬프트에 다음을 입력하세요.
ssh-test
수행되는 작업은 ssh -t gateway ssh test@test
아래와 거의 동일합니다.
local# ssh gateway
gateway# ssh test@test
두 단계를 하나로 결합하는 것 외에도 서버에서 셸(csh, bash 등) 열기를 건너뛰고 gateway
대신 인증 직후 SSH 세션을 시작합니다 test
.
로컬 시스템에는 ~/.ssh/config가 필요하지 않지만 게이트웨이 test
(키 사용을 위해)를 유지하십시오.
ForwardAgent yes
게이트웨이에 추가.ssh/config
Host test
HostName 192.168.1.10
ForwardAgent yes
IdentityFile ~/keys/test
User test
방법 2
게이트웨이 키를 로컬 상자에 복사하지 않고 local
ssh 키를 설치하도록 허용 test@test
하려면 다음을 사용할 수 있습니다.
현지의~/.ssh/config
Host gateway
User <gateway user>
HostName <gateway/IP>
Host test
User test
Hostname 192.168.1.10
Port 22
ProxyCommand ssh gateway nc %h %p