OpenSSH
OpenSSH개발자 | OpenBSD 프로젝트 |
---|---|
초기 릴리즈 | 1999년 12월 | , 전(
안정된 릴리스 | 2022년[1] 4월 8일 / 9.0 |
저장소 | github |
기입처 | C |
운영 체제 | 크로스 플랫폼[2] |
표준 | RFC 4250, RFC 4251, RFC 4253, RFC 4254, RFC 4256, RFC 4335, RFC 4344, RFC 4345, RFC 4419, RFC 4462, RFC 5656, RFC 6594, RFC 6668, RFC 7479[3] |
유형 | 리모트 액세스 |
면허증. | BSD, ISC, 퍼블릭도메인 |
웹 사이트 | www |
OpenSSH(OpenBSD Secure[a] Shell이라고도 함)는 Secure Shell(SSH) 프로토콜을 기반으로 하는 안전한 네트워킹 유틸리티 스위트입니다.SSH는 클라이언트 서버 [4][5]아키텍처의 보안되지 않은 네트워크를 통해 안전한 채널을 제공합니다.
OpenSSH는 Tatu Ylönen이 개발한 무료 SSH 프로그램의 포크로 시작되었으며, 이후 Ylönen의 SSH 버전은 SSH Communications [6]Security가 제공하는 독점 소프트웨어였다.OpenSSH는 1999년에 처음 출시되었으며 현재 OpenB의 일부로 개발되고 있습니다.SD 운영 체제
OpenSSH는 단일 컴퓨터 프로그램이 아니라 Telnet 및 FTP와 같은 암호화되지 않은 프로토콜의 대안으로 기능하는 일련의 프로그램입니다.OpenSSH는 Microsoft Windows, macOS 및 대부분의 Linux 운영 [7][8]체제와 같은 여러 운영 체제에 통합되어 있으며, 다른 [9][10][11]시스템에서는 휴대용 버전을 패키지로 사용할 수 있습니다.
역사
OpenBSD Secure Shell은 현재 독점 소프트웨어인 Tatu Ylönen의 SSH 소프트웨어의 대안으로 OpenBSD 개발자에 의해 개발되었습니다.[12]원본 SSH에서 소스 코드를 사용할 수 있지만 소스 코드 사용 및 배포에는 다양한 제한이 있습니다.OpenSSH는 Björn Grönvall의 OSSH의 포크로 개발되었으며, 그 자체가 Tatu Ylönen의 원래 무료 SSH 1.2.12 릴리즈의 포크로,[13] 포킹에 적합한 라이선스를 마지막으로 보유하고 있었다.OpenSSH 개발자들은 깨끗하고 감사된 코드를 생성하는 정책과 이름에 open이라는 단어가 가리키는 오픈 소스 라이센스인 BSD 라이센스에 따라 출시되기 때문에 응용 프로그램이 원본보다 더 안전하다고 주장합니다.
OpenSSH는 OpenBSD 2.6에서 처음 등장했습니다.최초의 휴대용 출시는 1999년 [14]10월에 만들어졌다.이후 개발 과정에서 암호를 추가하고(예: 2014년[15] 1월 6.5일 ChaCha20-Poly1305), OpenSSL에 대한 의존도를 줄이며(6[17].7, 2014년[16] 10월), 신뢰할 수 있는 호스트의 공개 키 검색 및 순환을 용이하게 하는 확장 기능(2015년 3월 DSA에서 Ed25519 공개 호스트 키 버전 6.8로 전환)이 추가되었습니다.
2015년 10월 19일, 마이크로소프트는 Open을 발표했습니다.SSH는 Microsoft Windows에서 기본적으로 지원되며 PowerShell을 통해 액세스할 수 있습니다.이것에 의해, 조기 실장이 개시되어 있습니다.[18]OpenSSH 기반 클라이언트 및 서버 프로그램은 버전 1803부터 Windows 10에 포함되어 있습니다.SSH 클라이언트와 키 에이전트는 디폴트로 이니블로 사용 가능하며 SSH 서버는 옵션인 [19]Feature-on-Demand 입니다.
2019년 10월, 투기 및 메모리 사이드 채널 공격으로부터 RAM에 저장된 개인 키에 대한 보호가 OpenSSH 8.1에 추가되었습니다.[20]
발전
OpenSSH는 OpenB의 일부로 개발됩니다.SD 운영 체제OpenSSH에 다른 운영체제 변경을 직접 포함시키지 않고 별도의 이식성 인프라스트럭처를 Open에 의해 유지합니다.SSH Portability Team 및 "Portable Release"는 정기적으로 작성됩니다.이 인프라스트럭처는 매우 중요합니다.부분적으로는 OpenSSH가 인증에 필요하기 때문입니다.이는 다양한 구현이 가능한 기능입니다.이 모델은 OpenNTPD와 같은 다른 OpenBSD 프로젝트에도 사용됩니다.
OpenSSH 제품군에는 다음과 같은 명령줄 유틸리티 및 데몬이 포함되어 있습니다.
- scp, rcp 대체.
- sftp: 컴퓨터 간에 파일을 복사하기 위한 ftp 대체품입니다.
- ssh: rlogin, rsh 및 telnet을 대체하여 리모트머신에 대한 셸 접근을 허용합니다.
- ssh-add 및 ssh-agent 유틸리티는 키를 준비하여 인증을 용이하게 하고 키를 사용할 때마다 패스프레이즈를 입력할 필요가 없도록 합니다.
- ssh-keygen 사용자 및 호스트 인증에 사용되는 RSA, DSA 및 타원 곡선 키를 검사 및 생성하는 도구입니다.
- ssh-keyscan: 호스트 목록을 검색하고 해당 공용 키를 수집합니다.
- sshd, SSH 서버 데몬.
OpenSSH 서버는 SSH 프로토콜에서 지원되는 표준 방식을 사용하여 사용자를 인증할 수 있습니다.패스워드를 사용한 공개 키 인증, 사용자별 키를 사용한 호스트 기반 인증, 공개 키를 사용한 안전한 버전의 rlogin 호스트 신뢰 관계 인증, 일반적인 챌린지-응답 메커니즘인 키보드-인터랙티브(대부분 다음과 같습니다.단순한 패스워드 인증에 사용되지만 토큰 등 보다 강력한 오센티케이터와 Kerberos/GSSAPI를 사용할 수도 있습니다.서버에서는 호스트 운영체제시스템 고유의 인증방식을 사용합니다.이 방법에는 BSD 인증시스템 또는 PAM을 사용하여 원타임패스워드 등의 방식을 통한 추가 인증을 이노블로 할 수 있습니다.그러나 PAM을 OpenSSH와 함께 사용할 경우 일반적으로 PAM을 작동하려면 루트 권한이 필요하므로 루트로 실행해야 하는 부작용이 발생할 수 있습니다.3.7(2003년 9월 16일) 이후의 OpenSSH 버전에서는 런타임에 PAM을 사용하지 않도록 설정할 수 있으므로 일반 사용자는 sshd 인스턴스를 실행할 수 있습니다.
OpenBSD에서 OpenSSH는 Xenocara X 서버를 포함한 운영 체제 전체에 적용되는 최소 권한 원칙에 따라 기본적으로 전용 sshd 사용자를 사용하여 권한을 삭제하고 권한 분리를 수행합니다.
특징들
OpenSSH에는 로컬, 클라이언트 측 UNIX 도메인 소켓 또는 로컬, 클라이언트 측 TCP 포트로 전송되는 데이터를 서버 측 라우팅용으로 "전송"(시큐어 채널 경유로 전송)할 수 있는 보안 채널을 설정하는 기능이 있습니다.이 전송이 설정되면 서버는 전송된 데이터를 일부 소켓 또는 TCP 호스로 전송하도록 지시됩니다.t/port(호스트는 서버 자체 또는 "localhost"일 수도 있고, 다른 컴퓨터에는 서버가 데이터의 발신원인 것처럼 보이도록 호스트가 다른 컴퓨터일 수도 있습니다).데이터의 전달,는 어떤 반환 의사 소통 다시 클라이언트 측에 같은 방법으로;이것은"시큐어 셸 터널"[21]과 같은 2004,[22]이후를 감추다 연결까지 시큐어 셸 연결을 통해 추가적인 TCP연결 멀티 플렉스 하는데 사용될 수 있는 것으로 포워드 된다는 것을 의미하며, 그렇지 않으면 u. 있프로토콜 암호화하는 데 양방향은nsecured 및 방화벽에 의해 허가된1개의 포트를 통해 모든 종류의 데이터를 송수신함으로써 방화벽을 회피합니다.예를 들어 OpenSSH를 사용하여 원격 호스트에 연결할 때 X Window 시스템 터널이 자동으로 생성되며 HTTP 및 VNC와 같은 다른 프로토콜이 [23]쉽게 전송됩니다.
(PPP 같은)(시큐어 셸의 포트 포워딩과 같은)"TCP-over-TCP"으로 알려져 있다TCP-based 연결을 통해 그렇게 한TCP-encapsulating 페이 로드 Tunneling 왜 가상 사설 네트워크 소프트웨어 대신 터널을 연결 protoco를 사용할 수 있는 전송 성능(문제가"TCP붕괴"으로 알려져)[24][25]에 극적인 상실을 유입할 수 있다.나는 단순한r은 TCP보다 커집니다.그러나 OpenSSH의 포트 포워딩을 사용할 때는 문제가 되지 않는 경우가 많습니다.많은 사용 예에서는 TCP-over-TCP 터널링을 수반하지 않기 때문입니다.Open은 Open SSH의 포트 포워딩에 의해SSH 클라이언트는 실제로 전송되는 payload에 도달하기 위해 로컬 클라이언트 측 TCP 접속을 처리한 후 터널 자신의 TCP 접속을 통해 서버 측으로 직접 페이로드를 전송합니다.서버 측에서도 마찬가지로 OpenSSH 서버는 payload를 "랩업"하여 최종 [26]수신처에 라우팅하기 위해 payload를 "랩업"합니다.
또한 일부 서드파티 소프트웨어에는 SSH를 통한 터널링이 지원됩니다.여기에는 DistCC, CVS, rsync 및 Fetchmail이 포함됩니다.일부 운영 체제에서는 (FUSE를 사용하여) sshfs 등의 도구를 사용하여 SSH를 통해 원격 파일 시스템을 마운트할 수 있습니다.
OpenSSH를 사용하여 애드혹 SOCKS 프록시 서버를 생성할 수 있습니다.이것에 의해, 통상의 포토 포워딩으로 가능한 것보다 유연한 프록시가 가능하게 됩니다.
OpenSSH는 버전 4.3 이후 OSI 레이어 2/3 터널 기반 VPN을 구현하고 있습니다.이는 OpenSSH의 터널링 기능 중 가장 유연하기 때문에 [27]SOCKS를 사용하기 위한 변경 없이 응용 프로그램이 원격 네트워크 리소스에 투과적으로 액세스할 수 있습니다.
지원되는 공개 키 유형
OpenSSH는 다음 공개 키 [28][29]유형을 지원합니다.
- ssh-dss [30](2015년에 OpenSSH 7.0이 출시된 이후 런타임에 비활성화됨)
- ssh-rsa (OpenSSH 8.8이 [31]2021년에 출시된 이후 런타임에 디세이블)
- ecdsa-sha2-nistp256(2011년 [32]OpenSSH 5.7 출시 이후)
- ecdsa-sha2-nistp384(OpenSSH 5.7 이후)
- ecdsa-sha2-nistp521(OpenSSH 5.7 이후)
- ssh-ed25519(2014년 [33]OpenSSH 6.5 출시 이후)
- rsa-sha2-256(2016년 [34]OpenSSH 7.2 출시 이후)
- rsa-sha2-512(OpenSSH 7.2 이후)
- ecdsa-sk ([35]2020년 OpenSSH 8.2 출시 이후)
- ed25519-sk (OpenSSH 8.2 이후)
- NTRU Prime-x25519 (오픈 이후)SSH 9.0)[36]
취약성
이 섹션은 Wikipedia 품질 기준에 맞게 다시 작성해야 할 수 있습니다.(2017년 5월) |
OpenSSH 버전 5.2 이전 버전에서는 공격자가 2의 [37]성공−14 확률로 최대 14비트의 평문을 복구할 수 있었습니다.이 취약성은 CBC 암호화 모드와 관련되어 있습니다.AES CTR 모드와 arc4 암호는 이 공격에 취약하지 않습니다.
OpenSSH 6.8에서 6.9(CVE-)에는 로컬 권한 상승 취약성이 있습니다.2015-6565년)은 서비스 거부 [38]취약성으로 간주된 (622) TTY 디바이스로 인해 발생합니다.TIOCSTI ioctl을 사용하면 인증된 사용자가 [39]다른 사용자 단말기에 문자를 삽입하고 Linux에서 임의의 명령을 실행할 수 있습니다.
악의적인 OpenSSH 서버 또는 손상된 OpenSSH 서버는 Open의 문서화되어 있지 않은 접속 재개 기능에 의존하는 취약성을 사용하여 다른 시스템의 개인 로그인 키와 같은 클라이언트의 중요한 정보를 읽을 수 있습니다.SSH 클라이언트는 로밍이라고 불리며 클라이언트에서는 디폴트로 유효하지만 OpenSSH 서버에서는 지원되지 않습니다.이는 Open 버전 5.4 (2010년[40] 3월 8일 출시)~7.1에 적용됩니다.SSH 클라이언트이며, 2016년 1월 14일에 출시된 OpenSSH 7.1p2에서 수정되었습니다.이 취약성과 관련된 CVE 번호는 CVE-2016-0777(정보 유출) 및 CVE-2016-0778(버퍼 오버플로)[41][42]입니다.
상표
2001년 2월 SSH Communications Security의 회장 겸 CTO인 Tatu Ylönen은 OpenSSH 개발 메일링 리스트에 SSH 상표와 "Secure Shell"[43] 상표의 소유권을 주장하는 것을 통지하고 "SecSH" 또는 "secsh" 프로토콜에 대한 참조를 "SSH"의 제어 순서로 변경하려고 했습니다.그는 오픈을 제안했다.SSH는 소송을 피하기 위해 이름을 바꾸는데, 이는 개발자들이 거부한 제안이다.OpenSSH 개발자인 Damien Miller는 Ylönen에게 SSH는 오랫동안 일반적인 [44]상표였다며 재고할 것을 촉구했다.
당시 "SSH", "Secure Shell" 및 "ssh"는 개방형 표준으로 프로토콜을 제안하는 문서에 등장했었다.Ylönen은 제안서에 이러한 내용을 등록 상표로 표시하지 않고 프로토콜을 설명하는 수단으로 이름에 대한 모든 배타적 권리를 포기하는 위험을 감수했습니다.상표를 부적절하게 사용하거나 다른 사람이 상표를 잘못 사용하는 것을 허용하면 상표가 [45]다른 사람이 사용할 수 있는 상표를 여는 크리넥스나 아스피린과 같은 총칭이 됩니다.USPTO 상표 데이터베이스를 검토한 후, 많은 온라인 전문가들은 "ssh"라는 용어가 상표가 아니라 소문자 "ssh"를 사용한 로고일 뿐이라고 주장했습니다.게다가 회사가 설립되고 나서 상표권을 방어하기 시작한 시점까지 6년이라는 기간, 그리고 오픈만이 가능했습니다.SSH는 상표의 [46]유효성에 반하여 법적 대응의 위협을 받고 있었습니다.
OpenSSH와 Ylönen의 개발자들은 모두 새로운 표준을 개발하는 IETF 워킹 그룹의 일원이었다.; 이 그룹은 IETF에 대한 다른 상표권 주장에 나쁜 선례를 남길 수 있다는 우려를 들어 프로토콜 이름을 바꾸라는 Ylönen의 요청을 거절했다.참가자들은 "Secure Shell"과 "SSH"는 모두 일반 용어이며 [6]상표일 수 없다고 주장했다.
「 」를 참조해 주세요.
- SSH 클라이언트 비교
- SSH 서버 비교
- SSH 파일 전송 프로토콜(SFTP)
메모들
레퍼런스
- ^ "OpenSSH 9.0, 미래의 Quantum 컴퓨터에 대한 강화와 함께 출시"; 사내 출판물:포로닉스, 취득: 2022년 4월 8일, 발행일: 2022년 4월 8일.
- ^ "OpenSSH Portable Release". OpenBSD. Retrieved 15 October 2015.
- ^ "Specifications implemented by OpenSSH". The OpenBSD Project. The OpenBSD Project. Retrieved 14 October 2015.
- ^ Venkatachalam, Girish (April 2007). "The OpenSSH Protocol under the Hood". Linux Journal (156): 74–77Accessed via the Discovery Database at LSU
{{cite journal}}
: CS1 유지보수: 포스트스크립트(링크) - ^ IETF의 Network Working Group, 2006년 1월, RFC 4252, Secure Shell(SSH) 인증 프로토콜.
- ^ a b Duffy Marsan, Carolyn (22 March 2001). "Secure Shell inventor denied trademark request". ITworld.com. Retrieved 14 December 2021.
- ^ "dragonfly.git/blob - crypto/openssh/README". gitweb.dragonflybsd.org. Retrieved 19 May 2016.
This is the port of OpenBSD's excellent OpenSSH to Linux and other Unices.
- ^ "src/crypto/external/bsd/openssh/dist/README - view - 1.4". NetBSD CVS Repositories. Retrieved 19 May 2016.
- ^ "openssh". OpenSUSE. Retrieved 17 May 2016.
- ^ "Debian -- Details of package openssh-client in jessie". Debian. Retrieved 17 May 2016.
- ^ "Arch Linux - openssh 7.2p2-1 (x86_64)". Arch Linux. Retrieved 17 May 2016.
- ^ "Project History and Credits". OpenBSD. Retrieved 8 April 2008.
- ^ "OpenSSH: Project History and Credits". openssh.com. 22 December 2004. Retrieved 27 February 2014.
- ^ "Portable OpenSSH – Freecode". Freshmeat.net. Retrieved 11 February 2014.
- ^ Murenin, Constantine A. (11 December 2013). Unknown Lamer (ed.). "OpenSSH Has a New Cipher — Chacha20-poly1305 — from D.J. Bernstein". Slashdot. Retrieved 26 December 2014.
- ^ Murenin, Constantine A. (30 April 2014). Soulskill (ed.). "OpenSSH No Longer Has To Depend On OpenSSL". Slashdot. Retrieved 26 December 2014.
- ^ Murenin, Constantine A. (1 February 2015). Soulskill (ed.). "OpenSSH Will Feature Key Discovery and Rotation For Easier Switching To Ed25519". Slashdot. Retrieved 1 February 2015.
- ^ "OpenSSH for Windows Update". 19 October 2015. Retrieved 23 October 2015.
- ^ Durr, Yosef (7 March 2018). "What's new for the Command Line in Windows 10 version 1803". Windows Command Line Tools For Developers.
- ^ "Protection for private keys at rest in RAM".
- ^ "OpenBSD manual pages: SSH". openbsd.org. 3 July 2014. Retrieved 14 July 2014.
- ^ "OpenSSH Release Notes".
- ^ "Features". OpenSSH. Retrieved 26 June 2016.
- ^ Titz, Olaf (23 April 2001). "Why TCP Over TCP Is A Bad Idea". Retrieved 17 October 2015.
- ^ Honda, Osamu; Ohsaki, Hiroyuki; Imase, Makoto; Ishizuka, Mika; Murayama, Junichi (October 2005). "Understanding TCP over TCP: effects of TCP tunneling on end-to-end throughput and latency". In Atiquzzaman, Mohammed; Balandin, Sergey I (eds.). Performance, Quality of Service, and Control of Next-Generation Communication and Sensor Networks III. Vol. 6011. Bibcode:2005SPIE.6011..138H. CiteSeerX 10.1.1.78.5815. doi:10.1117/12.630496. S2CID 8945952.
- ^ Kaminsky, Dan (13 June 2003). "Re: Extensions for long fat networks?". [email protected] (Mailing list).
the TCP forwarding code is pretty speedy as well. Just to pre-answer a question, ssh decapsulates and re-encapsulates TCP, so you don't have classic TCP-over-TCP issues.
- ^ "OpenSSH 4.3 Release Notes". openssh.com. 1 February 2006. Retrieved 14 July 2014.
- ^ "SSHD(8) - Linux manual page".
- ^ "Sshd_config(5) - OpenBSD manual pages".
- ^ https://www.openssh.com/txt/release-7.0[베어 URL 플레인텍스트 파일]
- ^ https://www.openssh.com/txt/release-8.8[베어 URL 플레인텍스트 파일]
- ^ https://www.openssh.com/txt/release-5.7[베어 URL 플레인텍스트 파일]
- ^ https://www.openssh.com/txt/release-6.5[베어 URL 플레인텍스트 파일]
- ^ https://www.openssh.com/txt/release-7.2[베어 URL 플레인텍스트 파일]
- ^ https://www.openssh.com/txt/release-8.2[베어 URL 플레인텍스트 파일]
- ^ "Changes since OpenSSH 8.9 (OpenSSH 9.0 release notes)". OpenSSH developers. 8 April 2022.
- ^ OpenSSH 보안 어드바이저리 CBC 공격
- ^ CVE-2015-6565
- ^ OpenSSH PTY 취약성
- ^ OpenSSH 5.4 출시
- ^ Thomson, Iain (14 January 2016). "Evil OpenSSH servers can steal your private login keys to other systems – patch now". The Register.
- ^ OpenSSH 7.1p2는 이제 막 출시되었습니다.
- ^ Ylonen, Tatu (14 February 2001). "SSH trademarks and the OpenSSH product name". openssh-unix-dev (Mailing list). MARC. Retrieved 11 February 2014.
- ^ Miller, Damien (14 February 2001). "Re: SSH trademarks and the OpenSSH product name". openssh-unix-dev (Mailing list). MARC. Retrieved 11 February 2014.
- ^ Lemos, Robert (2 January 2002). "Ssh! Don't use that trademark". CNET. Retrieved 19 May 2016.
- ^ Ylonen, Tatu (1 March 2002). "Ylönen: We own ssh trademark, but here's a proposal". NewsForge. Archived from the original on 1 March 2002. Retrieved 20 May 2016.