sshd_config에서 로그인 사용

sshd_config에서 로그인 사용

sshd_config 파일을 보고 다음을 발견했습니다.

#Uselogin no

댓글이 달렸다는 건 알지만 위에 설명이 없어서 구글링을 해보니 다음과 같은 결과가 나왔습니다.

사용자 로그인에 기존 login(1) 서비스를 사용하지 마십시오. 권한 분리를 사용하기 때문에 사용자가 로그인하면 login(1) 서비스가 비활성화됩니다.

또는

대화형 로그인 세션에 login(1)을 사용할지 여부를 지정합니다. 기본값은 "아니요"입니다. login(1)은 원격 명령 실행에 사용되지 않습니다. 또한 X11Forwardinglogin(1)이 xauth(1) 쿠키를 처리하는 방법을 모르기 때문에 이 기능이 활성화되면 비활성화됩니다. 지정 하면 UsePrivilegeSeparation 인증 후 비활성화됩니다.

ssh가 "레거시 로그인"을 사용하는 것을 방지하는 것으로 이해되지만 no"레거시" 로그인에 대한 정보를 찾을 수 없습니다.

누군가 그것이 무엇을 하는지 설명할 수 있나요?

답변1

여기서 약간의 역사가 필요합니다. UNIX 시스템에 액세스하는 주요 수단이 터미널과 직렬 회선이었던 시절에는 로그인에 관련된 4개의 프로그램이 있었습니다. init, getty, login, shell이 ​​그것이다. init는 getty를 시작하고 계속 실행합니다. getty는 직렬 포트를 열고(모뎀 관련 작업도 수행할 수 있음) 로그인 프롬프트를 표시하고 사용자 이름을 기다립니다. 사용자 이름을 입력하면 getty는 해당 사용자 이름으로 로그인을 실행합니다. 그런 다음 로그인에서 비밀번호를 묻는 메시지를 표시하고 계정 작업을 수행한 다음 시스템을 사용할 수 있는 쉘을 실행합니다. 이는 데이터 센터, 가상 머신 및 기타 여러 장소에서 여전히 사용됩니다.

다음은 원격 로그인입니다. Telnet은 직렬 포트를 사용하지 않으므로 상황이 약간 변경됩니다. getty 외에도 init는 telnetd(또는 telnetd를 시작하려면 inetd)도 시작하고 telnetd는 사용자 이름을 가져오고 로그인을 실행하며 모든 것이 거기에서 작동합니다.

이제 안전 쉘이 제공됩니다. 이제 보안 셸을 사용하면 비밀번호 없이(키를 사용하거나 GSS 버전에 따라) 로그인할 수 있으므로 몇 가지 방법으로 로그인할 수 있습니다. 좋은 기능을 사용하지 않고 텔넷처럼 로그인할 수도 있고, sshd는 로그인을 처리하고 쉘을 시작하여 모든 종류의 멋진 작업을 수행할 수 있습니다. 사용자 정의 버전의 로그인이 없으면 sshd가 로그인을 처리하도록 하는 것이 좋습니다. (Pam이 있다면 더 이상 맞춤 로그인을 할 이유가 없습니다.)

관련 정보