~에서https://unix.stackexchange.com/a/489913/674
SSH를 사용하여 연결하면 로그인으로 간주됩니다.
~에서프로세스를 소유자로 실행하거나 로그인하지 않고 소유자가 되는 방법은 무엇입니까?
관련되지 않은 SSH를 사용하여 연결
login
sshd
로그인 활동을 수행하는 방법은 무엇입니까 ? 프로그램을 호출하면 login
되는거 아닌가요?
SSH는 직접 표시되지 않지만 APUE는 작동 방식에 대한 다이어그램을 표시 rlogin
하고 설명도 제공합니다.
rlogind
login
프로그램은 일반적으로 둘 사이에서 사용자를 인증하기 때문에 서버와 로그인 셸 사이에서 exec에 대한 두 가지 호출을 보여줍니다 .
아직도 로그인이 필요 합니까 sshd
?exec
login
감사해요.
답변1
제공한 다이어그램은 rlogin
사용자에게 대화형 셸을 제공하는 의 상위 수준 경로 및 기타 네트워크 기반 프로세스와 거의 동일합니다.telnet
ssh
연결을 수락하는 데몬은 인증을 수행합니다. 성공하면 대화형 사용자 세션에 pty를 할당하고 pty와 통신할 하위(사용자) 세션을 만듭니다. 그런 다음 데몬은 pty와 네트워크 간의 통신을 처리합니다.
로그인한 동안 데몬은 다른 관리 기능(예: 업데이트, lastlogin
감사 로깅 등)도 수행할 수 있습니다. 하나 있다utmp
wtmp
많은수행된 백그라운드 작업 수입니다.
sshd
이는 다양한 방법으로 구성할 수 있습니다. UseLogin
사용자 세션을 생성하는 데 사용할 수 있는 매개변수가 있습니다. 기본값은 "아니요"입니다.
% sudo grep UseLogin /etc/ssh/sshd_config
#UseLogin no
yes
(예:sshd_config에서 로그인 사용)
답변2
APUE는 약간 오래되었거나 현대 Linux 사용자 공간에 잘 맞지 않습니다(현대 Linux Distro가 아닌 여전히 UNIX입니다).
최신 Linux 배포판에서는 SSH 서버가 네트워크를 통해 사용자를 인증하고 (세션 관리자와 대화하여) 로그인할 세션을 생성합니다. 원격 세션(그림의 일부에 표시됨)은 로그인 관리자가 입력 데이터를 네트워크 소켓에서 pty 마스터로 전달하여 작동하므로 쉘이 pty 슬레이브 장치에서 작동할 수 있습니다. Pty는 완전히 다른 주제입니다.
당신의 사진이 실제로 보여주는 것은 세션 관리자가 전혀 없었던 오래된 시스템입니다. Stephen이 다른 답변에서 말했듯이 이것은 완전히 다른 유형의 "대화"를 만듭니다.
최신 시스템에서 세션은 일반적으로 관리 사용자에게 더 간단한 구조를 제공하는 세션 관리자를 통해 생성됩니다.