역방향 SSH는 작동하지만 비밀번호가 없는 것은 아닙니다. 비밀번호 힌트 받기

역방향 SSH는 작동하지만 비밀번호가 없는 것은 아닙니다. 비밀번호 힌트 받기

두 가지 시스템이 있습니다

  1. system-Laptop개인 MacOS 노트북은 소유 사용자 로 알려져 있습니다 laptopuser. "NAT"가 없습니다.

  2. 서버 리눅스는 누구나 접속할 수 system-Server있는 고정 IP를 가진 사용자 라고 합니다 .serveruser

system-Server"NAT" 없이 동적 IP를 얻으 ssh려면 명령을 보내야 합니다 .system-Laptopreverse SSH tunnelsystem-Laptop

제가 설정한 방법은 다음 ssh-keys과 같습니다.reverse SSH

1단계: laptopuseron에 대한 키 쌍을 생성 system-Laptop하고 공개 키 id_rsa.pub를 self ~/.ssh/authorized_keys와 on에 system-Server복사 합니다.<serveruserhomedir>/.ssh/authorized_keys

2 단계:

serveruseron에 대한 키 쌍을 생성하고 system-Server공개 키 id_rsa.pub를 self에 복사한 ~/.ssh/authorized_keys다음 on에 복사합니다 system-Laptop.<laptopuserhomedir>/.ssh/authorized_keys

참고: 이 명령을 성공적으로 테스트할 수 있습니다 system-Laptop->ssh serveruser@system-Server

3단계:

system-LaptopSSH 터널을 보존하려면 다음 명령을 실행하십시오 .

ssh -N -R 3322:localhost:22 serveruser@system-Server

4단계:

다음 명령을 실행하여 Linux 서버에서 내 노트북에 연결하세요.

ssh -p 3322 laptopuser@localhost

문제는 위의 명령이 비밀번호를 묻는 메시지를 표시한다는 것입니다. laptopuser비밀번호를 제공하면 작동합니다.

SSH 키를 사용하여 위 작업을 비밀번호 없이 수행하려면 어떻게 해야 합니까? 내가 놓친 게 무엇입니까? [reverse-ssh]는 이번이 처음이라 잘 모르겠습니다.

다음은 4단계 ssh 명령의 디버그 출력입니다.

ssh -p 3322 laptopuser@localhost
.......
.......
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug3: receive packet: type 21
debug1: SSH2_MSG_NEWKEYS received
debug2: set_newkeys: mode 0
debug1: rekey after 134217728 blocks
debug2: key: /home/serveruser/.ssh/id_rsa (0x56539b783370)
debug2: key: /home/serveruser/.ssh/id_dsa ((nil))
debug2: key: /home/serveruser/.ssh/id_ecdsa ((nil))
debug2: key: /home/serveruser/.ssh/id_ed25519 ((nil))
debug3: send packet: type 5
debug3: receive packet: type 7
debug1: SSH2_MSG_EXT_INFO received
debug1: kex_input_ext_info: server-sig-algs=<ssh-ed25519,ssh-rsa,rsa-sha2-256,rsa-sha2-512,ssh-dss,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521>
debug3: receive packet: type 6
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug3: send packet: type 50
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug3: start over, passed a different list publickey,password,keyboard-interactive
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/serveruser/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/serveruser/.ssh/id_dsa
debug3: no such identity: /home/serveruser/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/serveruser/.ssh/id_ecdsa
debug3: no such identity: /home/serveruser/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/serveruser/.ssh/id_ed25519
debug3: no such identity: /home/serveruser/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug3: authmethod_lookup keyboard-interactive
debug3: remaining preferred: password
debug3: authmethod_is_enabled keyboard-interactive
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug3: send packet: type 50
debug2: we sent a keyboard-interactive packet, wait for reply
debug3: receive packet: type 60
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1
Password:


[serveruser@system-Server ~]$ ls -ltr /home/serveruser/.ssh/id_rsa
-rw------- 1 serveruser serveruser 3243 Jan 15 21:01 /home/serveruser/.ssh/id_rsa

답변1

첫째, SSH 키를 복사하는 가장 쉬운 방법은 다음을 사용하는 것입니다.SSH 복사 ID주문하다. 두 사용자 모두에 대해 이 작업을 수행합니다.

둘째, 역방향 터널을 생성하려면 다음 명령을 사용합니다(노트북에서 실행).

ssh -fnN -R 3322:localhost:22 serveruser@system-server

마지막으로 터널 서비스에 연결합니다. 이전에 ssh-copy-id가 완료된 경우 비밀번호를 묻지 않습니다. 시스템 서버에서 다음 명령을 실행하여 원격 Linux 서버에서 노트북으로 새 SSH 세션을 시작합니다.

ssh -p 3322 laptopuser@localhost

관련 정보