답변1
아마도 Cygwin을 실행하고 있지 않은 것 같습니다. ssh-keygen
무엇을 which ssh-keygen
보여주나요? 내 시스템의 Cygwin이 아닌 시스템 ssh-keygen
(PuTTY 또는 WinSCP와 함께 설치되었으며 어느 것이 기억나지 않음)은 동일한 동작을 가지고 있지만 다음과 함께 작동하도록 만들 수 있습니다.
ssh-keygen -t rsa -f /cygwin64/home/me/.ssh/id_rsa -N "passphrase"
메모:
- 대신에 자신만의 암호를 삽입
passphrase
하거나-N ""
빈 암호를 입력하세요. - 경로의 형식이 이상하며 루트는 입니다
C:
. 에 Cygwin이 설치되어 있으므로 이 예에서는C:\cygwin64
키가 Cygwin 홈 디렉터리( )에 있습니다 . 먼저~/.ssh
만드세요.ssh
.
아니면 Cygwin을 설치할 수도 있습니다 ssh-keygen
. which ssh-keygen
그런 다음 반환해야 합니다 /usr/bin/ssh-keygen
.
답변2
cygwin 경로에 슬래시를 사용하십시오. 백슬래시는 Linux에서 "이스케이프 문자"입니다(따라서 cygwin에서도 마찬가지입니다).
$ cygpath --help
cygpath
cygwin에 대한 경로+파일 이름을/에서/로 변환하는 데 도움이 됩니다.
힌트: cygwin에서는 Linux 경로를 사용하고, Windows에서는 Windows 경로를 사용하세요.
테스트되지 않은 예:
$ cygpath -u "C:\Users\User/.shhs/id_rsa" /cygdrive/c/UsersUser/.shhs/id_rsa
귀하의 예( )에 입력한 내용은
C:\Users\User/.shhs/id_rsa
결국 C:UsersUser/.shhs/id_rsa
- 귀하가 원하는 내용이 아닐 가능성이 높습니다.
"이스케이프 문자"는 그 뒤의 문자(일반적으로 특수 문자)에서 특별한 의미를 취하여 문자 그대로 입력에 그대로 둡니다(그보다 더 많은 내용이 있지만 여기서는 충분합니다).
예:
$ 에코 \$PATH=$PATH $PATH=... $
답변3
사용을 고려해보세요OpenSSH의 Microsoft 빌드. 단지다운로드 OpenSSH-Win32.zip
또는 OpenSSH-Win64.zip
추출하여 ssh-keygen.exe
사용합니다. 설치가 필요하지 않으며 종속성도 없습니다(Cygwin 또는 기타 항목).
Windows 10 버전 1803 이상을 사용하는 경우 이미 OpenSSH가 내장되어 있습니다. 이전 버전의 경우 다음과 같이 쉽게 설치할 수도 있습니다.선택적 기능 "OpenSSH 클라이언트".
답변4
회전초 스레드, 알아요. 하지만 해결책을 찾았습니다. 문제는 기본 Windows openssh 바이너리를 사용하려고 하는데 디렉터리 경로가 충돌한다는 것입니다.
나Windows openssh 클라이언트를 제거했습니다., cygwin 컴파일된 openssh 바이너리를 사용하여 cygwin을 다시 설치하면 이제 ssh-keygen
정상적으로 작동합니다.
또한 같은 이유로 다른 것(예: rsync)이 실패했다는 점도 주목할 가치가 있습니다.