주요 파일 기반 SSH 에이전트

주요 파일 기반 SSH 에이전트

좋아요, 저는 서버에 연결하는 데 사용되는 ID 파일을 기반으로 단일 공용 IP 주소와 단일 포트에서 여러 서버까지 여러 SSH를 처리하는 방법을 찾고 있습니다. ~/.bashrc를 사용하여 서버의 개인 IP에 대한 SSH 연결을 실행하는 것을 고려했지만 그것이 내가 염두에 둔 유일한 것입니다. SSH 및 프록시를 사용한 검색은 정방향 또는 역방향 프록시 문제로 끝나기 때문에 관련 정보를 찾기가 어렵습니다.

최선의 시나리오

user@publicip -i user1 --- proxy to [email protected]
user@publicip -i user2 --- proxy to [email protected]

~/.bashrc를 사용하여 작업을 수행할 수 있을 것 같습니다.

user1@publicip -i user1 --- proxy to [email protected]
user2@publicip -i user2 --- proxy to [email protected]

감사합니다!

답변1

Unix 및 Linux StackExchange에 오신 것을 환영합니다!

"단일 공용 IP 주소와 공용 IP 주소"를 의미한다고 가정합니다.기입/목적지포트".

이 경우 답이 항상 손끝에 있을 수 있으므로 검색이 너무 멀리 갔을 수 있습니다.sshd(8) 매뉴얼 페이지의 AUTHORIZED_KEYS 파일 형식 장나는 그것이 당신이 찾고 있는 도구를 제공할 것이라고 믿습니다.

~/.ssh/authorized_keys파일 에서는 user@publicip일반 세션 대신 특정 키가 사용될 때마다 실행할 명령을 지정할 수 있습니다. 그래서 당신은 이것을 할 수 있습니다 :

command="ssh [email protected]",restrict,pty ssh-rsa <public key of user1>
command="ssh [email protected]",restrict,pty ssh-ed25519 <public key of user2>

authorized_keys파일을 가지고 user1의 개인 키를 사용하여 인증되면 즉시 실행됩니다 user@publicip.sshdssh [email protected] 사용자의 일반 쉘 대신. 192.168.1.10에 대한 SSH 연결이 종료되면 전체 세션이 종료됩니다. 대신 user2의 개인 키를 사용하면 [email protected]별도로 연결됩니다.

그러나 내 가정이 정확하지 않고 실제로 프록시의 아웃바운드 측면을 단일로 제한하려는 경우소스 포트, TCP 프로토콜의 사용자 정의 구현을 작성하고 이를 실행하기 위해 SSH 버전을 수정해야 하는 작은 문제가 있습니다.

관련 정보