Windows 10 SSH 키


112

Windows 10을 설치 한 후 SSH 키를 설정하고 실행하는 데 정말 어려움을 겪고 있습니다. 일반적인 방법은 SSH 키를 만들어 .ssh 아래의 사용자 계정에 던지는 것입니다. 이 폴더는 Windows 10에서 사용할 수없는 것 같습니다.

다른 사람이이 문제를 겪고 있습니까? 다른 리포지토리에 대해 3 개의 SSH 키가 필요합니다.


2
Windows 10은 도트 폴더를 숨기고 있습니까?
Leland Barton

아니요, 처음에는 그렇게 생각했지만 설치 이후 몇 가지가 추가되었습니다.
Rudenate3 2015-08-04

2
질문을 수퍼 유저 로 이동하십시오 . 여기서는 주제 에서 벗어났습니다 .
Martin Prikryl

3
@MartinPrikryl Linux에서의 많은 코딩, Github 사용 등은 ssh 및 .ssh 키를 포함하기 때문에 Stackoverflow에 대한 주제라고 주장합니다.
haziz

2
나는 Martin과 동의합니다. 프로그래밍 질문은 프로그래머가 묻는 질문이 아니라 프로그램 작성에 관한 질문입니다.
Bacon Bits

답변:


130
  1. Windows 명령 줄을 엽니 다 (검색 상자에 "cmd"를 입력하고 Enter 키를 누릅니다).
  2. 기본적으로 홈 폴더로 설정되므로 cd다른 폴더로 이동할 필요가 없습니다 .
  3. 유형 ssh-keygen
  4. 지침을 따르고 당신은 갈 수 있습니다
  5. SSH 키는 selectedd 디렉토리에 저장되어야합니다. 기본값은 다음과 같습니다. /c/Users/YourUserName/.ssh/id_rsa.pub

추신 : bash 통합으로 git을 설치 한 경우 (예 : 나처럼) 첫 번째 단계에서 "cmd"대신 "Git Bash"를 엽니 다.


36
작동하지 않는 것을 제외하고는 멋지게 보입니다. 어떤 명령이 없습니다ssh-keygen
의 Tomás 로베르토

10
어떤 이유로 나는 ssh-keygencmd-shell 대신 git-bash 쉘에서 명령 을 실행해야했습니다 .
Olian04

6
이를 위해 Git Bash sheel 또는 git cmd를 사용할 수 있으며 Windows cmd를 사용할 수 없습니다.
파반 T

6
2018 년 12 월 현재 Win 10에서 즉시 작동했습니다
Urs

1
@Suncatcher 예. Github, DigitalOcean 등에 로그인하려면 동일한 폴더의 "id_rsa.pub"에있는 공개 키가 필요합니다. 메모장과 같은 텍스트 편집기로 열고 SSH 키를 추가해야하는 위치에 복사하여 붙여 넣습니다.
Goose

57

2019-04-07 업데이트 : 오늘 새 버전의 Windows 10 (빌드 1809, "2018 년 10 월 업데이트")으로 테스트했으며 개방형 SSH 클라이언트는 이미 설치되어 있으므로 더 이상 베타 버전이 아닙니다. 따라서 키를 생성하고 클라이언트가 putty (pagent) 대신 개방형 SSH를 사용하도록 설정하기 만하면됩니다.

  1. 명령 프롬프트 열기 (cmd)
  2. 입력 ssh-keygen하고 Enter를 누르십시오
  3. 모든 설정에 대해 Enter를 누르십시오. 이제 키가 c : \ Users \ .ssh \ id_rsa.pub에 저장됩니다.
  4. git 클라이언트를 열고 SSH를 사용하도록 설정하십시오.

Git Extensions 및 Source Tree에서 테스트했으며 GitHub의 개인 저장소와 함께 작동했습니다. 이전 Windows 버전을 사용 중이거나 SSH 용 그래픽 클라이언트를 선호하는 경우 아래를 읽으십시오.

2018-06-04 UDPATE :

Windows 10에서 버전 1709 (win + R 및 winver 빌드 번호를 찾으려면 입력)부터 Microsoft는 OpenSSH 클라이언트 및 서버의 베타를 릴리스합니다. 키를 생성하려면 OpenSSH 서버를 설치해야합니다. 이렇게하려면 다음 단계를 따르십시오.

  1. 시작 메뉴 열기
  2. "옵션 기능"을 입력합니다.
  3. "옵션 기능 추가"를 선택하십시오.
  4. "기능 추가"를 클릭하십시오.
  5. "Open SSH Client"설치
  6. 컴퓨터를 다시 시작하십시오

이제 프롬프트를 열 수 ssh-keygen있으며 클라이언트는 창에서 인식됩니다. 나는 이것을 테스트하지 않았습니다. Windows 10이 없거나 베타를 사용하지 않으려면 퍼티 사용 방법에 대한 아래 지침을 따르십시오.


ssh-keygen창문이 설치되어 있지 않습니다. Putty를 사용하여 ssh 키를 만드는 방법은 다음과 같습니다.

  1. 퍼티 설치
  2. PuttyGen 열기
  3. 사용할 키 유형 및 바이트 수 확인PuttyGen 매개 변수
  4. 진행률 표시 줄 위로 마우스 이동 마우스 입력으로 키 생성
  5. 이제 암호를 정의하고 공개 및 개인 키를 저장할 수 있습니다. 키 생성 대화 상자

openssh 키의 경우 몇 가지 추가 단계가 필요합니다.

  1. "붙여 넣기를위한 공개 키"텍스트 상자에서 텍스트를 복사하여 "id_rsa.pub"로 저장합니다.
  2. openssh 형식으로 개인 키를 저장하려면 Conversions-> Export OpenSSH 키로 이동하십시오 (패스 키를 정의하지 않은 경우 패스 키를 원하지 않음을 확인하라는 메시지가 표시됩니다) 키를 OpenSSH 형식으로 변환하기위한 메뉴
  3. "id_rsa"로 저장

이제 키가 저장되었습니다. pagent여기에서 개인 키를 시작 하고 추가합니다 (Putty 형식의 ppk 파일). 페이징 키 대화 상자

그 기억 pagent작업에 대한 인증을 실행해야합니다


6
ssh-keygen은 Windows 10에 포함되어 있지만 "선택적 기능 관리"에 어떤 버전이 있는지 확실하지 않습니다
sebbu

1
@sebbu 사실, 이제 Windows 10에서 "선택적 기능 관리"에서 Open SSH 서버의 베타를 설치할 수 있으며, 그러면 몇 가지 다른 기능과 함께 ssh-keygen이 제공됩니다. 그러나 설치되어 제공되지 않으며 찾기가 쉽지 않습니다. 내 대답을 업데이트하겠습니다.
franksands

1
@KarlMorrison pagent는 ssh 인증을 수행하는 GUI입니다. 일반적으로 시작 메뉴에 있습니다.
franksands

1
Open SSH Server를 설치할 필요가 없습니다. Open SSH Client 기능에는 ssh-keygen이 포함됩니다.
Onots

1
@Onots 나는 창 (10) (2018 년 10 월 갱신) 및 새로운 버전의 테스트뿐만 아니라 개방 ssh 클라이언트는 충분하지만, 이미 설치되어 제공됩니다 : D 나는 내 대답을 업데이 트됩니다
franksands

31

WINDOWS : Windows 용 git이 설치된 경우 해당 폴더로 이동하십시오.

여기에 이미지 설명 입력

bin 디렉토리를 살펴보십시오. sh.exe 파일이 있습니다. 실행 해.

여기에 이미지 설명 입력

그런 다음 다음을 입력하십시오.

ssh-keygen -t rsa -C "여기에 귀하의 이메일"

지침을 따르고 다음을 입력합니다.

고양이 ~ / .ssh / id_rsa.pub | 클립

키를 클립 보드에 복사합니다. 이제 해당 공개 키를 서버 측에 붙여 넣을 수 있습니다.


13
  1. Windows 명령 줄을 엽니 다 (검색 상자에 "cmd"를 입력하고 Enter 키를 누릅니다).
  2. 기본적으로 홈 폴더로 설정되므로 cd다른 폴더로 이동할 필요가 없습니다 .
  3. 유형 mkdir .ssh

9

경고 : C : /User/username/.ssh 아래에 키를 저장하는 경우 (기본 위치) 키를 어딘가 (예 : 암호 관리자)에 백업해야합니다.

최신 Windows 10 업데이트 (버전 1607) 이후 내 .ssh 폴더가 비어있었습니다. 이것은 내 키가 항상 있었던 곳이지만 Windows는 업데이트 할 때 키를 삭제하기로 결정했습니다.

고맙게도 키를 백업했습니다 ...하지만 ... 오늘 일부 사람들은 PC를 되돌릴 것입니다.


그렇다면 대부분의 앱은 키를 어디에 저장할 것으로 예상합니까?
wcochran

3
아마도 Windows 10을 업그레이드 할 때 Windows가 임의로 삭제하는 폴더에 있습니까?
Andrew

8

Microsoft Windows 10 Pro, 버전 10.0.17763 Build 17763을 실행하고 있으며 권한이나 다른 항목을 편집 할 필요없이 C : \ Users \ jrosario \ .ssh에서 쉽게 .ssh 폴더를 볼 수 있습니다 (파일 탐색기에서는 "숨김 파일, 폴더 및 드라이브 표시") : 여기에 이미지 설명 입력

키는 known_hosts라는 텍스트 파일에 저장되며 대략 다음과 같습니다. 여기에 이미지 설명 입력


5

Windows 10에서 설명 된 경로를 사용하여 파일 이름이 지정되지 않은 경우에만 파일을 폴더에 쓴다는 주목할만한 예외를 발견했습니다. 이 ssh-keygen 생성기에 .

사용자 지정 키 이름을 지정하면 RSA 공개 및 개인 키가 포함 된 파일이 폴더에 기록되지 않습니다.

  • Windows 명령 줄을 엽니 다.
  • 유형 ssh-keygen
  • 파일 이름을 비워두고 Return을 누르십시오.
  • 암호 설정
  • 키 파일을 생성하십시오. 이제 존재합니다. 에 저장c:/Users/YourUserName/.ssh/

( 관리자 명령 줄 및 Windows 10 Pro 사용 )


@Braineeee 부정. 이 것 NOT 키는 현재 당신이이 키를 덮어하고자하는 경우는 요청합니다 명령 줄 창에 다음 대상에 존재하는 경우, 사용자의 키를 덮어 씁니다. 동일한 폴더에있는 다른 키 는 적용되지 않습니다 . 귀하의 의견을 읽은 후 테스트 실행을했고 이것이 사실임을 알았습니다.
Martin

왜 그런지 알아 냈나요?
Damainman

@Damainman 안타깝게도 아직 더 자세히 살펴볼 기회가 없었기 때문에 :-/
마틴

1
감사합니다 @Martin 당신이 내 하루를 저장했습니다. 이름이 다른 파일을 만들 수 있습니다. 유닉스 방식으로 경로 구분자를 제공해야합니다! 다음은 나를 위해 일했습니다. ssh-keygen -t ed25519 -C "내 Github 키"키를 저장할 파일 입력 (C : \ Users \ bilix / .ssh / id_ed25519) : c : \ users \ bilix \ .ssh \ id_ed25519_github
Prakash P

@PrakashP는 기꺼이 도와줍니다!
Martin

4

개인 / 공개 키 생성 :

  1. (단말을 열어 git bash, PowerShell,cmd.exe 등)
  2. 입력 ssh-keygen
  3. 기본 파일 저장 (~/.ssh/id_rsa )을
  4. 기본 암호를 입력하려면 Enter 키를 누르십시오 (암호 없음).
  5. 다시 Enter 키를 누릅니다.
  6. 출력을보고 RSA3072이상 인지 확인하십시오.

이제 개인 / 공개 키 쌍을 만들었습니다.

GIT를 들어 키의 강도가 있어야합니다 2048, 사용자의에 있어야 .ssh디렉토리라고 id_rsa하고 id_rsa.pub. 아무 곳에 나 키를 붙여 넣을 때 VIM과 같은 새 줄을 추가하지 않는 프로그램을 사용해야합니다.


2

나는 이미 관리자이고 수동으로 디렉토리를 생성 할 수 있었음에도 불구하고 "관리자 실행"을 사용하여 명령 줄을 열어서 작동하도록했습니다.


1

OpenSSH 클라이언트가있는 Windows 10이있는 경우 키를 생성 할 수 있지만 ssh-copy-id 명령이 클라이언트 도구 세트의 일부가 아니므로 대상 Linux 상자에 키를 복사하는 데 문제가 있습니다.

이 문제를 해결하기 위해 작은 PowerShell 함수를 작성하여 프로필에 추가했습니다.

function ssh-copy-id([string]$userAtMachine, [string]$port = 22) {   
    # Get the generated public key
    $key = "$ENV:USERPROFILE" + "/.ssh/id_rsa.pub"
    # Verify that it exists
    if (!(Test-Path "$key")) {
        # Alert user
        Write-Error "ERROR: '$key' does not exist!"            
    }
    else {  
        # Copy the public key across
        & cat "$key" | ssh $userAtMachine -p $port "umask 077; test -d .ssh || mkdir .ssh ; cat >> .ssh/authorized_keys || exit 1"      
    }
}

여기서 요점을 얻을 수 있습니다.

여기 에 대한 간단한 글이 있습니다.


0

또한 (Windows 10 Pro의 경우) 관리자 권한으로 Powershell을 실행하고 ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.