질문
글쎄, 문제는 El Capitan에서 Pycharm을 사용하고 있다는 것입니다. Pycharm보다 최신 키 교환 알고리즘을 사용하여 엄격한 로그인 Kexalgorithms를 사용하는 서버에 연결하려고 합니다.~인 것 같다사용할 수 있는 기능이 있습니다... 하지만 여기에 문제가 있습니다. 터미널에서 로그인할 수 있으며 동일한 버전의 Pycharm이 Ubuntu 14.04에서 작동합니다(거기서 로그인할 수 있습니다).
터미널에서 SSH를 사용하여 정상적으로 로그인할 수 있습니다.
Pycharm을 사용하여 서버에 로그인하려고 하면 "알고리즘 협상에 실패했습니다.
이것은 내 /var/log/messages에 있는 항목입니다.
Jan 22 23:15:56 (none) auth.crit sshd[2520]: fatal: Unable to negotiate with 10.10.16.125: no matching key exchange method found. Their offer: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1 [preauth]'
이 질문은 StackOverflow에 올라온 내용인데 서버의 sshd_config 파일에 이렇게 아주 오래된 버전의 Diffie-Helman을 허용하는 옵션을 추가해서 본인이 스스로 문제를 해결한 것 같았습니다.
이 이전 버전의 Diffie-Helman을 sshd_config에 추가할 권한이 없습니다.
나는 이전에 Yosemite에 있었고 최신 ssh 및 openssl 버전이 있기 때문에 업그레이드하면 문제가 해결될 것이라고 생각했지만 문제가 해결되지 않았습니다.
노트
- Ubuntu 14.04에서 동일한 버전의 Pycharm을 사용하면 연결할 수 있습니다. 그래서 Pycharm에는 문제가 없는 것 같습니다.
- 해당 로그 항목을 가져오기 위해 Mac에서 서버로 SSH를 연결할 수 있었습니다.
질문
이러한 새로운 기능을 사용하려면 SSH 지원 애플리케이션에 대한 특정 암호화 관련 라이브러리를 업데이트해야 합니까?
답변1
첫째: 그게 왜 필요한가요? sshfs
일을 더 잘할 수는 없을까 ?
당신의 문제는 정반대입니다. 서버 제공오래된(깨졌을 수도 있음) KeyExchange 방법: diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
은 더 이상 현재 버전의 openssh 서버에서 기본값이 아닙니다. (그 서버는 무엇입니까? 시스템 관리자가 알려주는 경우)엄격한그리고최신, 사실이 아닌) 클라이언트에 적합해야 합니다.
~/.ssh/config
이러한 Kex 메서드를 허용하는 줄 에 추가해 보아야 합니다 .
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group-exchange-sha1
애플리케이션 내 연결에 도움이 되지 않으면 로컬 구성을 강제로 사용하는 다른 방법이 있을 수 있습니다.
답변2
여기로 돌아와 내 질문에 답하는 데 시간이 좀 걸렸습니다.
Jsch 라이브러리 업데이트
Pycharm 버전 4에는 버그가 있는 라이브러리가 포함되어 있습니다. 이 버그는 기본 Diffie-Helman-group1* 암호 이외의 특정 SSH 키 교환 알고리즘을 사용하는 SFTP 통신을 방지합니다. 따라서 Pycharm이 가상 머신과 통신할 수 있도록 라이브러리를 업데이트해야 합니다. 우리의 가상 머신은 최신 키의 사용만을 허용하고 레거시 Diffie-Helman-group1* 암호를 차단합니다.
Pycharm 4에는 SFTP(전송 도우미 파일에 필요)와 통신하는 데 사용되는 Jsch라는 오래된 버전의 Java 라이브러리가 있습니다. 이 문제를 해결하려면 라이브러리를 업데이트하면 됩니다.
업데이트된 라이브러리는 다음 sourceforge에서 찾을 수 있습니다.http://sourceforge.net/projects/jsch/files/jsch.jar/0.1.53/
영향을 받는 버전
- 맥: 파이참 <= 5
- 윈도우: 파이참 <= 5
- 리눅스: Pycharm < 4? (이 버그는 Linux의 4.04에는 존재하지 않습니다.)
단계 다운로드
- 이 페이지(상단)에서 Jsch 사본을 다운로드하세요.
- 이전 버전 삭제: jsch-0.1.51.jar sudo rm /Applications/PyCharm.app/Contents/lib/jsch-0.1.51.jar
- 새 라이브러리 pycharm 디렉터리(/Applications/PyCharm.app/Contents/lib cp ~/Downloads/jsch-0.1.53.jar /Applications/PyCharm.app/Contents/lib/)를 복사합니다.
- Pycharm을 다시 시작하세요
노트:이 문제는 Pycharm 5에서 수정되었으며 업데이트를 통해 동료들이 수정했지만 다른 Java 기반 애플리케이션이 있는 경우 도움이 될 수 있습니다.
노트:나는 결국 Pycharm의 로그를 뒤지다가 이 사실을 발견했습니다. 이 라이브러리에 대한 질문을 볼 수 있었고 인터넷 검색을 하다가 sourceforge에서 이 라이브러리를 찾았습니다.