
로그인하는 데 사용자 이름, 비밀번호 또는 인증서가 필요하지 않은 SSH 서버를 어떻게든 설정할 수 있습니까? 이것이 가능하지 않은 경우 모든 고객에게 동일한 공개 키를 제공한다면 각 연결이 개별적으로 암호화됩니까? (즉, 사용자 A는 사용자 B 연결의 페이로드를 해독할 수 없습니다.)
사용자 이름과 비밀번호를 묻는 단일 프로그램에 대한 액세스를 제공하고 싶습니다.
하지만 암호화는 필수적이며 사용자는 서로를 스누핑할 수 없어야 합니다.
감사해요
답변1
세션을 열려면 항상 사용자 이름이 필요하지만 PermitEmptyPasswords
sshd 구성에서 빈 비밀번호를 설정하고 yes로 설정할 수 있기 때문에 SSH의 인증 부분을 제거할 수 없다고 생각합니다.
그러나 이것은 실제로 안전하지는 않습니다. 키 인증을 사용하는 것이 더 좋습니다.
고객에게 공개 키를 제공하면 고객이 귀하의 SSH 서버가 아닌 자신의 SSH 서버에 연결하도록 허용할 수 있음을 의미합니다.
고객이 SSH 서버에 연결하기를 원한다고 생각합니다. 이 경우 고객은 공개 키를 제공해야 하며 연결을 허용해야 합니다. 모든 고객이 동일한 공개 키를 사용하여 SSH 서버에 연결했다면 모든 고객이 동일한 개인 키를 사용한다는 의미이며 이는 선택 사항이 아닙니다(개인 키를 제공하는 것은 귀하의 역할이 아니며 개인 키를 공유해서는 안 됩니다) )
암호화 및 스누핑의 경우 공개/개인 키가 아닌 세션 키로 암호화가 이루어지지만 SSH 세션 키를 교환하려면 공개/개인 키를 사용합니다.
따라서 동일한 개인 키를 사용하는 모든 고객이 처음부터 세션을 스누핑하면 세션의 암호를 해독할 수 있지만, 세션 키 교환 후 세션을 스누핑하면 세션의 암호를 해독하기가 매우 어려울 것입니다.
SSH 작동 방식에 대한 좋은 기사http://www.eng.cam.ac.uk/help/jpmg/ssh/ssh-detail.html
답변2
조금 늦었지만 /etc/passwd에 있는 해당 프로그램에 대한 쉘을 설정하여 사용자가 로그인 시 (어떤 방법으로든) 특정 프로그램을 실행하도록 강제할 수 있습니다. .sshrc 파일을 사용하여 sshd를 사용할 때 더 복잡한 방법이 있다고 생각하지만 OpenSSH를 사용한다고 가정하지는 않습니다. 하지만 모두 man 파일에 있습니다.
답변3
개인 키를 다음과 같이 생각하십시오.비밀. 이 경우 귀하의 신원과 같은 것을 증명하려는 경우 귀하를 주장할 수 있습니다.비밀을 알고 있다, 이 경우 개인 SSH 키입니다. 공개 키는 "공개"이며, 그런 의미에서 아무것도 증명하는 데 사용할 수 없습니다.
이는 권장 사항과 일치합니다.한 명 이상의 사용자에게 동일한 개인 키를 제공하지 마십시오.. 보안 프로세스의 부담을 덜기 위한 시도에서 엄청난 양의 보안 허점이 발생합니다. 그렇게 하는 안전한 방법도 있습니다. 하지만 관리자로서 작업을 수행해야 합니다. 그렇지 않으면 자동으로 네트워크와 사용자가 공격에 노출될 수 있습니다.
"단축키를 사용하지 마세요"
답변4
사용자~ 할 것이다다른 프로세스의 메모리 공간에 액세스할 수 있으므로 서로를 염탐할 수 있습니다(임의의 프로그램을 실행할 수 있다고 가정).