OpenSSH가 포함 된 SSH 릴레이 서버


10

라우터 스위치 등과 같은 다른 SSH 지원 장치로 릴레이하기 위해 OpenSSH를 사용할 수 있습니까? 이것이 Linux에서 맞춤형 응용 프로그램을 만들지 않고 수행 할 수있는 작업입니까?

감사

답변:


9

확실한; SSH 포트 전달 / 터널링 만 사용하십시오. 다음 명령을 사용하여 "proxy"시스템에 대한 ssh 연결을 시작하십시오.

ssh -L$LOCALPORT:$REMOTEHOST:$SSHPORT $PROXYHOST
  • $PROXYHOST: SSH 액세스 권한이있는 머신
  • $REMOTEHOST: $ PROXYHOST가 연결할 수 있지만 연결할 수없는 머신. $PROXYHOST컴퓨터를 참조하는 데 사용할 수 있는 호스트 이름 또는 IP를 사용하십시오.
  • $SSHPORT: sshd가 원격 호스트에서 수신 대기중인 포트; 대부분 22
  • $LOCALPORT: 로컬 아웃 바운드 포트 SSH가 로컬 컴퓨터에서 포트 22의 포트로 전달됩니다. $REMOTEHOST

터널이 계속 작동하도록 연결을 유지하십시오. -N이 연결이 원격 쉘을 가져 오지 않고 나중에 실수로 닫지 않도록 명령에 추가 할 수도 있습니다 .

터널이 설정되면 다음을 수행하십시오.

ssh -p $LOCALPORT localhost

$REMOTEHOSTSSH 포트로 전달 된 포트에서 로컬 시스템에 대한 SSH 연결을 시도합니다 .


3

클라이언트에서 구성을 업데이트하려는 경우 게이트웨이 상자를 프록시 로 사용하도록 클라이언트를 설정할 수 있습니다 . 릴레이 박스에 netcat이 설치되어 있어야하며 최상의 결과를 얻으려면 키 기반 인증 설정이 필요합니다.

다른 호스트를 통해 연결하기 위해 .ssh / config에서 사용하는 내용은 다음과 같습니다.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host "/bin/netcat -w 1 internal-ssh-host 22"

위와 같이 클라이언트 시스템에서 ssh internal-ssh-host-proxy 명령을 간단히 실행할 수 있습니다 .

프록시 SSH 호스트에 OpenSSH 클라이언트 5.4 이상이 있으면 netcat이 필요하지 않고 대신 내장 netcat 모드를 사용할 수 있습니다.

Host internal-ssh-host-proxy
    ProxyCommand /usr/bin/ssh username@ssh-relay-host -W internal-ssh-host:22

죄송하지만 클라이언트 서버와 서버 간의 릴레이를 위해 netcat을 사용하는 OpenSSH를 사용하고 있지 않습니까?
aHunter

거의 모든 곳에서 사용 가능한 매우 일반적인 유틸리티와 결합 된 OpenSSH를 사용하고 있습니다. 그것은 순수한 ssh는 아니지만 나는 그것을 믿지 않았습니다.
Zoredache

아니요. 동의하지는 않는다는 데 동의하지만 OpenSSH를 사용하여 릴레이하여 표준 ssh 클라이언트를 사용하고 OpenSSH를 실행하는 상자에 ssh를 사용하여 다른 컴퓨터 또는 여러 컴퓨터에 ssh 액세스를 자동으로 제공 할 수 있는지 알고 싶습니다. 감사합니다
aHunter

1
@aHunter, 레코드를 위해 이제 openssh 5.4에 내장 된 'netcat 모드'가있어 순수한 openssh 연결을 제공합니다 ( blog.rootshell.be/2010/03/08/openssh-new-feature-netcat-mode 외부 도구 없음) 필요합니다.
Zoredache

3

제시된 답변 중 Zordache가 최고의 전체 솔루션입니다. 그러나 후손을 위해 구성을 편집하지 않고 ad-hoc을 단순히 연결하려면 -t플래그를 사용 하여 릴레이에서 ssh를 직접 실행하고 의사 터미널을 할당하십시오.

ssh -t relay.example.com ssh internal.example.com

편집 파일이없는 가장 간단한 솔루션
Kartoch

2

OpenSSH를 사용하여 자동으로 연결을 전달할 수 있습니다. 당신의에서 ~/.ssh/authorized_keys파일, 당신은 두 번째 시스템에 SSH가 될 수있는 실행 명령을 지정할 수 있습니다.

[ssh client] ----> [ssh relay server] ----> [ssh target server]
    you          modified authorized_keys      target machine

결국 보게 될 것은 두 가지 프롬프트입니다 Password:. 하나는 릴레이 서버와 다른 하나는 대상 서버입니다. 인증서를 사용하여이 동작을 항상 제거 할 수 있습니다.


openssh에서 sshd를 어떻게 구성하겠습니까?
aHunter

[1]에서 [강제 명령] 섹션 [1]을 참조 eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html
sybreon

이것은 놀라운 아이디어입니다. 마지막으로 방화벽에서 경로가있는 100 개의 개별 포트를 열어야합니다. 그런 다음 중복성을 위해 반복하십시오. 이것은 100 개의 ssh 키를 만들고 각각의 서버에 연결할 수 있음을 나타냅니다. 이것은 또한 릴레이 서버를 완전히 잠글 수 있음을 나타냅니다. 일부는 이것을 VPN이라고 부를 수도 있지만 다르게 보입니다.
Richard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.