답변:
SSH 프로토콜은 ssh
및 sshd
프로그램에서 허용 하는 내용으로 정의됩니다 . (표준은 정의되어 있지만, 사실은 사후의 것이며 구현 중 하나가 새로운 기능을 추가 할 때 대부분 무시됩니다.) 여러 구현 (OpenSSH, F-Secure, PuTTY 등)이 있으므로 ) 때때로 그들 중 하나가 다른 프로토콜과 동일한 프로토콜을 지원하지 않는 것을 발견 할 것입니다. 기본적으로 인증 협상 및 다중화 된 데이터 스트림 작성을 정의합니다. 이 스트림은 OpenSSH 및ControlMaster
) 터미널 세션 및 0 개 이상의 터널 (로컬 또는 원격에서 다른쪽으로 소켓 연결을 전달합니다. X11 전달은 원격 전달의 특별한 경우입니다). 또한 스트림을 통해 사용할 수있는 "하위 시스템"을 정의합니다. 터미널 세션은 기본 서브 시스템이지만 다른 세션도 정의 할 수 있습니다. sftp
이 중 하나입니다.
ssh
이 유틸리티는 SSH 프로토콜을 사용하여 sshd
다른 시스템과 통신합니다. 작동 방식은 버전에 따라 다르지만 (위 참조) 사용할 SSH 프로토콜의 버전을 파악한 다음 sshd
지원되는 인증 방법을 협상 한 다음 사용하여 인증하려고합니다. 이러한 방법 중 하나 (필요에 따라 원격 사용자 암호 / 개인 키 암호 / S- 키 문구 요청) 및 성공적인 인증시와 함께 멀티플렉싱 된 스트림을 설정합니다 sshd
.
sshd
위에서 말한 것처럼 SSH 프로토콜의 서버 측을 구현합니다.
sftp
대부분의 sshd
구현 에서 정의 된 (현재 유일한 표준) 하위 시스템 입니다. SFTP 서브 시스템이 요청되면 서브 시스템 세션에 sshd
연결 sftp-server
합니다. sftp
프로그램은 다음과 유사하게, 그것을 이야기 ftp
대신에 별도의 연결을 사용하여 스트림에 다중 파일 전송과 함께 ftp
.
su
과는 아무 상관이없는 ssh
, sshd
또는 sftp
, 다중화 된 스트림이로 쉘 또는 프로그램 실행 내에서 사용할 수를 준비하는 PAM 모듈이있을 수 있으므로 한, 제외시켰다 있습니다.
OpenSSH 프로젝트를 살펴보십시오 . 찾고있는 모든 정보가 있습니다.
간단히 말해, SSH 프로토콜 은 두 호스트 간의 보안 (암호화) 연결을 허용 합니다. 이 ssh
유틸리티는 SSH 프로토콜을 사용하여 원격 시스템에 로그인하는 클라이언트 프로그램이며 [역] 터널링 / 포트 포워딩 / ...과 같은 다른 용도도 많이 있습니다.
sshd
그것은의 서버 소프트웨어. 들어오는 SSH 요청에 응답 하는 데몬 을 제공 합니다.
su
ssh와 관련이 없습니다. 활성 사용자를 변경하는 데 사용됩니다 (가장 자주 사용됨 root
).