모니터로 QEMU/KVM 실행:kvm ...some_parameters... -monitor unix:/my_path/my_fifo,server,nowait
socat - UNIX-CONNECT:/my_path/my_fifo
그런 다음 then type 명령을 사용하여 연결할 수 있습니다 .
쉽고 편리합니다.
모니터 인터페이스를 로컬 네트워크(보안 방법에 따라 socat 사용)에 노출하고 싶습니다. 이는 매우 안전합니다. 모니터에 대한 접근을 어떻게 보호할 수 있나요?
사용 가능한 비밀번호 옵션, 인증서 등이 표시되지 않습니다. 따라서 QEMU/KVM 외부 방법에 의존해야 한다고 생각됩니다.
답변1
SSH를 사용하면 SSH에서 제공하는 보안 옵션을 활용하여 이러한 소켓에 안전하게 액세스할 수 있습니다. socat
SSH는 옵션을 통해 소켓-소켓 또는 tcp-소켓 전달을 허용하므로 전혀 필요하지 않습니다 -L
.
-L [bind_address:]port:host:hostport
-L [bind_address:]port:remote_socket
-L local_socket:host:hostport
-L local_socket:remote_socket
qemu
예를 들어 프로세스가 옵션으로 실행되는 경우 연결에 -monitor unix:/my_path/my_fifo,server,nowait
사용 하고 로컬 소켓에 연결하거나 텔넷을 사용하여 연결합니다 (이 경우 SSH 클라이언트는 localhost에서만 수신 대기합니다).ssh virtualization-host -L /tmp/monitor:/my_path/my_fifo
/tmp/monitor
ssh virtualization-host -L 12345:/my_path/my_fifo
localhost:12345
보안을 강화하려면 SSH 키를 사용하여 모니터에 연결하세요. 원격 가상화 호스트에서 개체 rw
에 대한 권한을 가질 사용자를 만듭니다 /my_path/my_fifo
. 키 쌍을 생성하고 ~/.ssh/authorized_keys
전달만 허용하도록 제한된 방식으로 공개 키를 해당 사용자의 파일에 넣습니다.
restrict,port-forwarding,command="/bin/false" ssh-... ..... (the public key string)
연결하려면 쉘을 할당하지 않고 명령을 실행하지 않는 명령을 사용하십시오. 이는 전달에만 유용합니다.
ssh monitoruser@virtualization-host -i mointor_private_key -L 12345:/my_path/my_fifo -N
마지막으로 telnet localhost 12345
SSH를 통해 전달된 모니터 소켓에 액세스하는 데 사용합니다.