중지 방법: [MyIP] 포트 22와 협상할 수 없습니다. 일치하는 키 교환 방법을 찾을 수 없습니다. 그들의 인용문: diffie-hellman-group1-sha1

중지 방법: [MyIP] 포트 22와 협상할 수 없습니다. 일치하는 키 교환 방법을 찾을 수 없습니다. 그들의 인용문: diffie-hellman-group1-sha1

나는 모든 메일과 기타 자료가 정리되어 있는 호스팅된 Linux 서버를 물려받았습니다. 데비안 리눅스를 사용하세요.

10년 동안 아무 것도 건드리지 않은 것 같은데 꽤 오래된 물건이네요.

SSH를 통해 연결하려고 할 때마다 다음 문구가 나타납니다.

Unable to negotiate with [MyIP] port 22: no matching key exchange method
found. Their offer: diffie-hellman-group1-sha1

나는 다음과 같은 올바른 명령을 알고 있습니다.

ssh -oKexAlgorithms=diffie-hellman-group1-sha1 -c aes128-cbc root@[MyIP]

하지만 제가 정말 이해하지 못하는 것은 왜 이런 일이 일어나고 있으며 이러한 일이 발생하지 않도록 하려면 어떻게 해야 합니까?

SSH 버전이 너무 오래된가요? 아니면 로그인 문제 없이 SSH를 업데이트할 수 있나요?

데비안인가요? SSH/Bash를 통해 Debian을 업데이트할 수 있나요?

답변1

당신이 물려받은 서버가 매우 오래된 버전의 데비안을 실행하고 있는 것 같습니다. 말씀하신 대로 10년 동안 업그레이드되지 않았다면 아마도 Squeeze나 Wheezy를 실행하고 있을 것입니다. 둘 다 오래된 것이므로 공용 인터넷에서 프로덕션 용도로 사용해서는 안 됩니다.

어떤 버전인지 알아보려면 , /etc/debian_version, /etc/os-release등 의 /etc/motd파일을 살펴보세요 /etc/issue. 또한 /etc/apt/sources.list디렉터리에 있는 모든 파일과 마찬가지로 /etc/apt/sources.list.d/설치된 데비안 버전을 아는 것은 중요하고 유용한 정보입니다. 특히 최신 버전으로 업그레이드하려는 경우 더욱 그렇습니다.

서버 처리 방법에 대한 완전한 단계별 지침을 제공하는 것은 불가능하므로 다음은 몇 가지 유용한 팁입니다.

  1. ...no matching key exchange method...오류 메시지는 서버가 sshd더 이상 사용되지 않는 암호화 및 키 교환 방법을 사용하는 이전 버전을 실행하고 있기 때문에 발생합니다.

    가능한 한 빨리 업그레이드해야 하지만(오래된 암호는 좋은 이유로 더 이상 사용되지 않습니다) 그 동안 ssh서버에 연결할 때 항상 사용되도록 로컬 클라이언트를 구성할 수 있습니다. 다음을 편집하고 추가합니다.diffie-hellman-group1-sha1aes128-cbc~/.ssh/config

    Host your_server_name
     KexAlgorithms diffie-hellman-group1-sha1
     Ciphers aes128-cbc
    

    "your_server_name" 대신(또는 추가로) 서버의 IP 주소를 사용할 수도 있습니다. 그런데 sshd서버를 최신 버전으로 업그레이드한 후에는 이 작업을 실행 취소하는 것을 잊지 마세요.

  2. 서버가 Debian을 실행 중이라면 업그레이드할 수 있으며... bash 명령줄에서 ssh를 통해 문제 없이 원격으로 업그레이드할 수 있습니다. 이런 그래픽 도구보다는 이나 apt다른 명령줄 도구를 사용해야 하는데 데비안은 이렇게 내부에서 업그레이드되도록 설계되었습니다.apt-getaptitudesynaptic

    권장되는 절차는 현재 실행 중인 버전에서 다음 버전으로 한 번에 한 버전씩 업그레이드하는 것입니다. 예를 들어, 현재 Debian 6("Squeeze")이 설치되어 있으면 Debian 7("Wheezy")로 업그레이드한 다음 Debian 8("Jessie")로 업그레이드하는 방식으로 Debian 11(" 황소의 눈" ") ). 데비안 릴리스 내역과 버전 번호/이름 지정에 대한 좋은 요약이 있습니다.https://en.wikipedia.org/wiki/Debian_version_history

    그런데 "권장 프로그램"이라는 말은 데비안이 실제로 한 릴리스에서 다음 릴리스로의 성공적인 업그레이드만을 보장한다는 것입니다. 어떤 경우에는 한 번에 두 개 이상의 버전으로 점프하는 것이 가능하지만, 특히 컴퓨터에 물리적으로 접근할 수 없거나 설치된 데비안 버전이 너무 오래된 경우에는 시도하지 않는 것이 좋습니다. 이렇게 하면 시스템이 손상될 가능성이 높습니다(그리고 복구가 불가능할 수도 있음).

    업그레이드할 때마다 일부 항목을 수동으로 재구성해야 할 수도 있습니다. 대부분의 패키지는 문제가 없지만 일부 패키지에는 비호환성, 새로운 기능 및/또는 더 이상 사용되지 않는 이전 기능이 있습니다.

    참고: 기본 데비안 아카이브에는 현재 안정 릴리스(Bullseye) 및 oldstable(Buster)에 대한 저장소만 포함되어 있습니다. 이전 버전은 다음에서 사용할 수 있습니다.https://www.debian.org/distrib/archive그리고 source.list URL에는 archive.debian.org URL(또는 가까운 미러)을 사용해야 합니다.

    예를 들어, deb http://ftp.au.debian.org/debian/ wheezy main contrib non-free다음과 같은 것 대신에deb http://archive.debian.org/debian/ wheezy main contrib non-free

  3. 업그레이드할 때마다 sshd다른 터미널 창이나 탭에서 ssh를 시도하여 새 버전이 제대로 작동하는지 테스트하는 것이 좋습니다. sshd새 버전이 제대로 작동하는지 확인할 때까지 현재 SSH 세션에서 로그아웃하지 마십시오. 그렇지 않으면 다시 로그인하지 못할 수도 있습니다. 어느 시점이 되면(정확히 어떤 버전인지 기억이 나지 않습니다) 새 sshd는 더 이상 이전 비밀번호나 키 교환 방법을 지원하지 않으므로 구성 변경 사항을 실행 취소해야 합니다. 당신을 위해 만들어졌습니다 ~/.ssh/config. 어느 시점에서는 /etc/ssh/sshd_config서버를 약간 변경 해야 할 수도 있습니다 .

    이는 매우 중요하며 반복할 가치가 있습니다.

    다시 로그인할 수 있다는 확신이 들 때까지 SSH 세션에서 로그아웃하지 마십시오.

  4. 여러 버전의 Debian을 업그레이드하는 것보다 데이터와 구성 파일을 백업하고, 서버를 지우고, Debian 11을 새로 설치한 다음 데이터와 구성 파일을 복원하는 것이 더 쉽다는 것을 알 수 있습니다. 몇 가지 중요한 서비스만 실행한다면 훨씬 쉬울 수 있습니다.

    더 나은 옵션은 두 번째 호스팅 서버를 임대하고, 여기에 Debian 11을 설치한 다음, 기존 서버에서 새 서버로 서비스를 점진적으로 마이그레이션하는 것입니다. 이는 아마도 가장 간단한 접근 방식이며 문제나 실패 가능성이 가장 적습니다. 각 서비스를 한 번에 하나씩 마이그레이션하고 각각의 새 서비스로 전환하기 전에 제대로 작동하는지 테스트할 수 있습니다. 이는 공황 상태나 극도의 시간적 압박 속에서 발생할 수 있는 실수를 생각하고 피할 시간을 제공합니다.

    어느 쪽이든 실행 중인 내용과 이유, 각 서비스가 해당 특정 시스템에서 계속 실행되는 것이 얼마나 중요한지, 서비스를 폐기하거나 다른 A 컴퓨터로 마이그레이션할 수 있는지에 대한 전체 목록이 있어야 합니다. 또한 이러한 프로그램의 기능, 작동 방식, 구성 방법을 완전히 이해하는 것도 중요합니다.

    이들 중 일부는 시스템과 해당 구성 파일을 조사하여 얻을 수 있는 반면, 다른 일부는 조직 내 사람들과 대화하고 고위 직원이 특정 서비스의 중요성과 우선 순위를 결정하도록 함으로써만 얻을 수 있습니다. 지루하고, 여러 단계에서 적어도 일시적인 중단이 있기 때문에 CYA는 관리자에게 결정을 맡겨 이를 해결합니다. 기억하세요. 시스템 관리자가 훌륭한 일을 해내면 아무도 눈치 채지 못하지만,모든 사람상황이 바뀌면 주목하세요.

    즉, 신중한 계획 없이 업그레이드에 뛰어들지 마십시오. 업그레이드의 모든 단계를 계획해야 하며, 그 계획에는 각 업그레이드 후에도 모든 중요한 서비스가 여전히 제대로 작동하는지 테스트하는 것이 포함되어야 합니다.

  5. 어떤 일을 하기 전에 모든 것을 백업하세요. 또한 컴퓨터에서 RAID 유형을 실행 중인 경우 RAID는 백업을 대체하지 않는다는 점을 기억하십시오. 백업을 대체할 수 있는 것은 없습니다. 서버에 현재 정기적인 백업 계획이 없다면 두 번째로 계획을 설정하는 것이 좋습니다. 첫 번째 단계는 현재 백업을 만드는 것입니다.

  6. 가상 머신에 Squeeze 또는 Wheezy를 설치하여 업그레이드하는 연습을 한 다음 Bullseye까지 작업해야 합니다. 실제 서버를 업그레이드하는 것과 정확히 같지는 않지만 최소한 프로세스에 매우 익숙할 것입니다. 쉽게 해결할 수 없는 문제가 발생하는 경우 복구할 수 있도록 각 업그레이드 단계 전에 가상 머신의 스냅샷을 만들 수 있습니다.

  7. 모든 데비안 릴리스에는 주요 변경 사항과 비호환성에 대해 알려주는 업그레이드 노트가 함께 제공됩니다. 각 업그레이드 전에 이 내용을 읽어야 합니다.

관련 정보