CPU가 높아지는 OpenSSH 문제를 디버깅하려고합니다. 하지만 그 전에 SSH-Agent 포워딩 기능이이 연결에 사용되었는지 확인하고 싶습니다. 다음은 두 개의 채널을 할당 한 자식 SSH 서버의 코어 덤프입니다. 채널 [1]이 ssh-agent와 대화하는 것 같습니다.
다음과 같은 도움이 필요합니다.
1) 내가 아는 것처럼 ssh-agent는 SSH 클라이언트와 대화하지만 여기서는 SSH 서버와 대화하는 것 같습니다. 역할에 ssh-agent 전달이 있다고 말할 수 있습니까?
2)이 시나리오를 재현하려면 어떻게해야합니까?
3) 제공된 데이터에서 친절하게 말하고 싶은 기타 사항.
(gdb) p *channels[0]
type = 0x4,
self = 0x0,
remote_id = 0x0,
istate = 0x0,
ostate = 0x3,
flags = 0x0,
rfd = 0xd,
wfd = 0xffffffff,
efd = 0xffffffff,
sock = 0xffffffff,
ctl_chan = 0xffffffff,
isatty = 0x1,
client_tty = 0x0,
path = 0x0,
listening_port = 0x0,
listening_addr = 0x0,
host_port = 0x0,
remote_name = 0xb0f2e4a0 "server-session",
ctype = 0x187df64 "session",
open_confirm = 0,
open_confirm_ctx = 0x0,
detach_user = 0x1855650 <session_close_by_channel>,
detach_close = 0x1,
=============================
(gdb) p *channels[1]
type = 0x6,
self = 0x1,
remote_id = 0xffffffff,
istate = 0x0,
ostate = 0x0,
flags = 0x0,
rfd = 0x9,
wfd = 0x9,
efd = 0xffffffff,
sock = 0x9,
ctl_chan = 0xffffffff,
path = 0xb0f2e7a0 "/tmp/ssh-00015945aa/agent.15945",
listening_port = 0x0,
listening_addr = 0x0,
host_port = 0x0,
remote_name = 0xb0f2e720 "auth socket",
ctype = 0x187d92c "auth socket"
1) 내가 아는 것처럼 ssh-agent는 SSH 클라이언트와 대화하지만 여기서는 SSH 서버와 대화하는 것 같습니다. 역할에 ssh-agent 전달이 있다고 말할 수 있습니까?
그 반대입니다. 클라이언트가 에이전트와 대화합니다. 소켓을 서버로 전달하면 해당 서버의 다른 클라이언트가 컴퓨터의 에이전트와 통신 할 수 있습니다.
그게 다야. 서버에는 인증 소켓을 전달하는 유일한 역할이 있습니다.
2)이 시나리오를 재현하려면 어떻게해야합니까?
시작 ssh-agent
및 ssh -A server
에이전트 전달과 연결을 시작 하는 데 사용 합니다.
3) 제공된 데이터에서 친절하게 말하고 싶은 기타 사항.
(gdb) p *channels[0]
type = 0x4, /* SSH_CHANNEL_OPEN -- shell or command */
(gdb) p *channels[1]
type = 0x6, /* SSH_CHANNEL_AUTH_SOCKET -- ssh-agent forwarding */
예, 에이전트 전달입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다