SSH(Secure Shell)는 암호화 및 인증 메커니즘을 통해 안전한 액세스 및 파일 전송 서비스를 구현하는 네트워크 보안 프로토콜입니다. Telnet 및 FTP와 같은 기존의 원격 로그인이나 파일 전송 방법은 일반 텍스트를 사용하여 데이터를 전송하므로 많은 보안 위험이 있습니다. 사람들이 네트워크 보안에 더 많은 관심을 기울임에 따라 이러한 방법은 점점 덜 수용되고 있습니다. SSH 프로토콜은 네트워크 데이터를 암호화하고 확인하여 안전하지 않은 네트워크 환경에서 안전한 로그인 및 기타 보안 네트워크 서비스를 제공합니다. Telnet 및 기타 안전하지 않은 원격 셸 프로토콜에 대한 안전한 대안으로 SSH 프로토콜은 전 세계적으로 널리 사용되었으며 대부분의 장치는 SSH 기능을 지원합니다.
SSH 포트 번호는 무엇인가요?
SSH는 어떻게 작동하나요?
PuTTY 및 OpenSSHSSH 키 사용
STelnet, SFTP, SCP에 SSH를 적용할 때 기본으로 사용되는 SSH 포트는 22입니다. NETCONF에 SSH를 적용하는 경우 SSH 포트를 22 또는 830으로 지정할 수 있습니다. SSH 포트는 수정을 지원합니다. 변경 후에는 현재 연결이 모두 끊어지고 SSH 서버가 새 포트를 수신하기 시작합니다.
SSH는 서버와 클라이언트로 구성됩니다. 전체 통신 과정에서 안전한 SSH 채널을 구축하기 위해 다음 단계를 거칩니다.
SSH 서버는 클라이언트 연결을 수신합니다. 지정된 포트 요청에서 클라이언트가 서버에 대한 연결 요청을 시작한 후 두 당사자는 TCP 연결을 설정합니다.
SSH 프로토콜은 현재 SSH1.X(SSH2.0 이전 버전) 및 SSH2.0 버전에 존재합니다. SSH1.X 프로토콜과 비교하여 SSH2.0 프로토콜은 구조가 확장되었으며 더 많은 인증 방법과 키 교환 방법을 지원하는 동시에 서비스 기능을 향상시킬 수 있습니다. SSH 서버와 클라이언트는 협상을 통해 사용되는 최종 SSH 버전 번호를 결정합니다.
SSH는 여러 암호화 알고리즘을 지원합니다. 각 당사자가 지원하는 알고리즘을 기반으로 양측은 최종적으로 세션 키 생성에 사용되는 키 교환 알고리즘, 데이터 정보를 암호화하는 데 사용되는 암호화 알고리즘, 사용되는 암호화 알고리즘을 협상합니다. 데이터 무결성 보호를 위해 디지털 서명과 인증된 공개 키 알고리즘 및 HMAC 알고리즘을 수행합니다.
대단해요! 개인 작업에 꼭 필요한 N 오픈소스 프로젝트!
서버와 클라이언트는 키 교환 알고리즘을 사용하여 공유 세션 키와 세션 ID를 동적으로 생성하여 암호화된 채널을 설정합니다. 세션 키는 주로 후속 데이터 전송의 암호화에 사용되며, 세션 ID는 인증 과정에서 SSH 연결을 식별하는 데 사용됩니다.
SSH 클라이언트는 서버에 인증 요청을 시작하고 서버는 클라이언트를 인증합니다. SSH는 다음 인증 방법을 지원합니다.
인증을 통과한 후 SSH 클라이언트는 서버에 세션 요청을 보내 서버에 특정 유형의 서비스를 제공하도록 요청합니다. 즉, 서버와 해당 세션을 설정하도록 요청합니다. . 게다가 공개계정 리눅스 검색 시 백그라운드에서 "Linux"라고 답하는 방법을 익혀야 깜짝 선물을 받을 수 있다.
세션이 설정된 후 SSH 서버와 클라이언트는 해당 세션에 대한 데이터 정보를 교환합니다.
PuTTY는 Windows의 기본 무료 SSH 연결 도구로 일반적으로 SSH 프로토콜을 사용하여 장치에 원격으로 로그인하는 데 사용됩니다. 최신 버전은 PuTTY 공식 웹사이트에서 다운로드할 수 있습니다.
OpenSSH는 SSH 프로토콜의 오픈 소스 구현이며 Unix 운영 체제에서의 실행을 지원합니다. 최신 버전은 OpenSSH 공식 웹사이트에서 다운로드할 수 있습니다. 현재 Windows 10에는 이미 OpenSSH 클라이언트 및 서버 소프트웨어가 포함되어 있으며 "설정 - 응용 프로그램 - 응용 프로그램 및 기능 - 선택적 기능"에서 검색하여 설치할 수 있습니다.
보안을 향상시키는 기본 방법은 암호화 알고리즘이 안전한 전송을 위해 키를 통해 일반 텍스트를 암호 텍스트로 변환하는 것입니다. SSH는 사전 생성된 SSH 키를 통한 정보 전송의 보안을 보장하기 위해 대칭 암호화와 비대칭 암호화라는 두 가지 유형의 알고리즘을 조합하여 사용합니다. 두 가지 암호화 알고리즘의 암호화 및 복호화 과정은 아래 그림과 같습니다.
대칭 암호화 알고리즘
비대칭 암호화 알고리즘
대칭 암호화 알고리즘은 동일한 키를 사용하여 데이터를 암호화하고 해독합니다. SSH 연결 설정 시 생성되는 세션 키는 대칭 키입니다. 대칭 키는 공유된 부분 정보와 자체 개인 데이터를 기반으로 하는 키 교환 알고리즘을 사용하여 클라이언트와 서버에서 생성됩니다. 대칭 암호화 알고리즘은 매우 빠르게 암호화 및 복호화되므로 대량의 데이터가 전송되는 시나리오에 적합합니다.
비대칭적으로 암호화된 전송 및 수신을 위해서는 관련 SSH 키 쌍, 공개 키 및 개인 키를 사용해야 합니다. 개인 키는 이를 생성한 당사자가 보관하며, 공개 키는 통신을 요청하는 누구에게나 전송될 수 있습니다. 발신자는 수신된 공개 키를 사용하여 통신 내용을 암호화하고, 수신자만 개인 키를 사용하여 통신 내용을 해독하고 얻을 수 있습니다. 비대칭 암호화의 개인키는 네트워크에 노출될 필요가 없어 보안이 대폭 강화되지만, 대칭키에 비해 암호화 및 복호화 속도가 훨씬 느리다.
비대칭 암호화는 SSH 연결 프로세스의 두 단계에서 사용됩니다. 하나는 키 교환 단계에서 서버와 클라이언트 모두 자체 임시 공개 키와 개인 키를 생성하며, 이는 후속 암호화 통신 콘텐츠에 사용되는 것과 동일한 세션 키를 계산하는 데 사용됩니다. 다른 하나는 사용자 인증 단계에서 공개키로 암호화된 콘텐츠를 일치하는 개인키만이 고유하게 복호화할 수 있는 기능을 사용하여 클라이언트의 공개키와 개인키 쌍을 통해 클라이언트의 신원을 확인하는 것입니다.
SSH 사용자 인증의 가장 기본적인 두 가지 방법은 비밀번호 인증과 키 인증입니다. 비밀번호 인증은 인증을 위해 사용자 이름과 비밀번호를 서버로 보내는 것입니다. 이 방법은 비교적 간단하며 로그인할 때마다 사용자 이름과 비밀번호를 입력해야 합니다. 키 인증은 신원 확인을 위해 공개 키와 개인 키 쌍을 사용하여 비밀번호가 필요 없는 안전한 로그인 방법입니다. 키 인증의 기본 원칙은 서버가 클라이언트의 공개 키를 사용하여 임의의 콘텐츠를 암호화하고, 클라이언트는 자신의 개인 키를 사용하여 이를 복호화한 후 서버로 보내 자신의 신원을 확인하는 것입니다. 구체적인 프로세스는 아래 그림에 나와 있습니다. .
SSH 키 인증 로그인 프로세스
위 내용은 SSH란 무엇입니까? 원리에 대한 자세한 설명을 보려면 이 기사를 읽어보세요!의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!