SSH 에이전트 전달이 활성화된 경우 소켓 파일을 사용하여 서버에 액세스하는 방법

SSH 에이전트 전달이 활성화된 경우 소켓 파일을 사용하여 서버에 액세스하는 방법

요새 호스트가 있습니다. 사용자 이름/비밀번호를 사용하여 요새 호스트에 연결합니다. 그리고 대상 서버에 대한 개인 키가 있습니다. 흐름:

Local Machine -> Bastion -> Destination

사용하는 것이 위험하다는 것을 알고 있습니다.에이전트 전달누군가 내 글을 읽을 수도 있으니까소켓 파일(배스천 호스트에 대한 루트 액세스 권한이 있는 경우)세션이 열려 있습니다대상 서버에 액세스하므로 다음을 사용해야 합니다.프록시명령!

이제 나는 단지테스트 대상 서버에 액세스하는 방법개인 키 없이만약 내가 가지고 있다면배스천 서버에 대한 액세스- 에이전트 전달은 얼마나 위험합니까?

Host bast
     Hostname X.X.X.X
     ForwardAgent yes
     User bastion

질문:

  • 배스천 서버의 다음 위치에 활성 에이전트에 대한 정보가 있는 것을 확인했습니다. 예: /tmp/ssh-{이름}/agent.[PID]. 루트 액세스 권한이 있지만 이 파일을 읽을 수 없습니다. 내 생각엔프로세스 ID로 충분합니다.이 파일의 경우안 그래?

  • 에이전트 전달이 활성화된 경우 소켓 파일을 어디에서 찾을 수 있습니까? 나는에서 찾으려고 노력한다/proc/pid/fd/여러 소켓 파일을 본 위치입니다.

  • 소켓 파일을 사용하여 대상 서버에 어떻게 액세스합니까? (소켓 파일을 이용하여 SSH를 통해 대상 서버에 접속하는 방법)

여기에서 소켓 파일을 찾으려고 했습니다.

 /proc/PID/fd/

그런 다음 각 소켓 3,4,5,9,11에 대해 다음 명령을 시도해 보십시오.

ssh -p 2072  -o "ProxyCommand socat - UNIX-CLIENT:/proc/PID/fd/11" app@[DESTINATION_HOST_URL] 

결과:

2018/08/26 01:53:31 socat[13552] E connect(5, AF=1 "/proc/13510/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host

여기에 이미지 설명을 입력하세요

통나무:

OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 58: Applying options for *
debug1: Executing proxy command: exec socat - UNIX-CLIENT:/proc/14003/fd/11
debug1: permanently_set_uid: 0/0
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /root/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.4
debug1: permanently_drop_suid: 0
2018/08/26 03:10:17 socat[14073] E connect(5, AF=1 "/proc/14003/fd/11", 19): Connection refused
ssh_exchange_identification: Connection closed by remote host

답변1

방금 키를 로드했을 SSH_AUTH_SOCK때 then 의 값을 변경했습니다 .ssh-add -l

요약하자면, 요새 호스트에 대한 루트 액세스 권한이 있으면 전체 세션이 열려 있는 키를 훔칠 수 있으므로 에이전트 전달을 사용하는 것은 위험합니다. 당신은 변화하기 만하면됩니다 SSH_AUTH_SOCK. 그게 전부입니다!

관련 정보