2013-07-20 2 views
2

Linux Mint를 실행하는 데스크톱에서 로컬 git 저장소를 초기화했습니다. 13. Assembla의 저장소로 이동하려면 ssh 키가 있어야합니다.Assembla에서 git 저장소 사용을 위해 SSH 공개/개인 키 쌍을 생성, 저장 및 구성하는 올바른 방법은 무엇입니까?

I 먼저 단말기 등의 새로운 키를 생성 할 :

$ ssh-keygen -t rsa 

응답은 :

Enter file in which to save the key (/home/ryan/.ssh/id_rsa): 

난 "gitrep"를 시도했다. 그러면 다음 메시지가 나타납니다.

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

나는 그들이 내가 아는 한 선택이기 때문에 그들이 비어 있지만, 단지 기록을 위해, 암호를 추가하는 결과를 변경하지 않습니다. 폴더가 비어 있지만, 여기에 이상한 일이 id_rsa_gsg_keypair를 그리고 ...

Your identification has been saved in gitrep. 
Your public key has been saved in gitrep.pub. 
The key fingerprint is: 
da:80:b9:c5:cd:50:9c:1c:49:7f:b7:db:71:92:1e:6a [email protected] 
The key's randomart image is: 
+--[ RSA 2048]----+ 
|  +++  | 
|  .=.  | 
|  . . . . | 
|  + + . . o | 
| o + S  =..| 
|  o +  o =o| 
| . . . E o .| 
|   .  | 
|     | 
+-----------------+ 

지금, 나는/홈/라이언/스푸핑로 이동합니다. 나는 다시 키에 대한 동일한 파일 이름을 사용하여 위의 과정을 다시 실행하는 경우가에 추가 :

gitrep already exists. 
Overwrite (y/n)? 

내가 무슨 일이 일어나고 있는지 이해가 안 돼요.

내 질문의 다음 부분은이 생성 된 파일로 무엇을 해야하는지입니다. 내가 그대로 둔 채로 있니? 정보를 Assembla의 일부 장소로 복사합니까?

나는 실제적인 과정을 따르지 않는 방식으로 질문을하면 그 사과에 상당히 익숙하지 않기 때문에 미리 사과드립니다.

+1

미래의 검색 사용자를 위해 : "ssh-keygen -t rsa"가 생성 된 파일을 터미널의 현재 디렉토리에 저장하고 이후에 표시되는 일반적인 기본 디렉토리가 아니라는 것을 이해하고있었습니다. 명령이 입력됩니다./home/ryan에서 명령을 입력하면/home/ryan에있게됩니다. /home/ryan/.ssh/id_rsa에서 명령을 입력하면 거기에 계속있을 것입니다. –

답변

2

그냥 gitrep을 입력 했으므로 현재 디렉토리 (위의 예에서 보았 듯이 본인의 홈 디렉토리)에 저장됩니다.

~/gitrep~/gitrep.pub이 있는지 확인하십시오. gitrep.pub 파일의 내용을 공개 키를 요청할 때 대상으로 복사해야합니다.

+0

나는 그것이 무엇을하는지 봅니다. 그것은/opt/lampp/인 터미널에있는 현재 디렉토리에 저장했습니다. 그것은 두 개의 파일을 생성해야합니까? 내가 어디에 보관할 것인가, 아니면 키를 생성 할 때 내 시스템이이 키를 저장할 것인가? –

+0

@Unipartisandev 예 두 개의 파일을 생성해야합니다. 하나는 SSH를 통해 통신하려는 사람에게 배포하는 공개 키입니다 ("* .pub' 파일,"public "키는"pub ", 다른 하나는 개인 키 파일입니다. *** *** 공유하지 *** *** 누구 ***, 당신의 공개 키를 준 장소로 로그인을위한 비밀 번호처럼. –

1

원래 포스터 상태 (강조 광산) :

은 그 때 나는 다음과 같은 메시지가 나타납니다.

Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 

나는 그들이 내가 아는 한 선택이기 때문에 그들이 비어 있었으나 결국 결과을 변경하지 않는 암호를 추가 기록, 합니다.

나는 구걸한다. 암호문을 추가하면 개인 키이 암호화되므로 다른 사람이 컴퓨터에서 개인 키 파일을 훔쳐도 암호를 해독하지 않으면 암호를 읽고 사용할 수 없습니다.

당신은 암호 그것을 옵션 및 추가 있지만, 그것은 매우을 권장 아직.

이의이 (암호 없음) 당신의 암호화되지 않은 개인 키 파일의 내용이 저장이 (Improving the security of your SSH private key files에서 적응 예)

-----BEGIN RSA PRIVATE KEY----- 
MIIEogIBAAKCAQEArCQG213utzqE5YVjTVF5exGRCkE9OuM7LCp/FOuPdoHrFUXk 
y2MQcwf29J3A4i8zxpES9RdSEU6iIEsow98wIi0x1/Lnfx6jG5Y0/iQsG1NRlNCC 
aydGvGaC+PwwWiwYRc7PtBgV4KOAVXMZdMB5nFRaekQ1ksdH/360KCGgljPtzTNl 
09e97QBwHFIZ3ea5Eih/HireTrRSnvF+ywmwuxX4ubDr0ZeSceuF2S5WLXH2+TV0 
    ... etc ... lots of base64 blah blah ... 
-----END RSA PRIVATE KEY----- 

이 값처럼 보이는 척하자, 그 차이를 설명하기 위해 당신의 개인 키는 공개 키를 부여한 제 2 자에게 위장 할 때 사용할 수 있습니다 (이 경우 Assembla). 그것은 기본적으로 해커가 귀하의 계정으로 비밀번호를 도용하여 귀하와 마찬가지로 로그인하는 것처럼 사용됩니다 ... SSH 세계에서 이것은 동등한 것입니다.

-----BEGIN RSA PRIVATE KEY----- 
Proc-Type: 4,ENCRYPTED 
DEK-Info: AES-128-CBC,D54228DB5838E32589695E83A22595C7 

3+Mz0A4wqbMuyzrvBIHx1HNc2ZUZU2cPPRagDc3M+rv+XnGJ6PpThbOeMawz4Cbu 
lQX/Ahbx+UadJZOFrTx8aEWyZoI0ltBh9O5+ODov+vc25Hia3jtayE51McVWwSXg 
wYeg2L6U7iZBk78yg+sIKFVijxiWnpA7W2dj2B9QV0X3ILQPxbU/cRAVTd7AVrKT 
    ... etc ... 
-----END RSA PRIVATE KEY----- 

당신이 방법을 참조 수행

자, 가정 해 동일한 개인 키 암호 위에서 암호화 한 경우, 파일의 내용이 (다시 Improving the security of your SSH private key files에서 적응)과 같을 것이라고 가정 해 봅시다 내용이 암호화되지 않은 파일과 다르게 보입니까? 이렇게하면 암호화되지 않은 형식으로 다시 암호문을 해독하는 암호를 사용하지 않는 한 개인 키를 훔치려는 사람이 개인 키를 쓸모 없게 만듭니다.

암호는 매우 안전하지 않습니다, 당신은 이미 알고 :

이 GitHub의이 Why you need a passphrase for your private SSH key을 위해 제공하는 이유입니다. 당신이 기억하기 쉬운 것을 사용한다면 추측하거나 짐작하기가 더 쉽습니다. 무작위로 사용하는 경우 기억하기 어렵 기 때문에 암호를 적어 두는 경향이 있습니다. 이 두 가지 모두 Very Bad Things ™입니다. 이것이 ssh 키를 사용하는 이유입니다.

하지만 암호를 사용하지 않고 키를 사용하는 것은 기본적으로 컴퓨터의 파일에 임의의 암호를 기록하는 것과 같습니다. 드라이브에 대한 액세스 권한을 얻은 사람은 누구나 해당 키를 사용하는 모든 시스템에 액세스 할 수 있습니다. 이것은 또한 Very Bad Thing ™입니다. 해결책은 분명합니다. 암호를 추가하십시오.

동일한 도움말에서 how to use the *nix utility ssh-agent to automatically store your passphrase during a terminal session을 설명하므로 개인 키를 사용하여 SSH 요청을 할 때마다 계속 입력 할 필요가 없습니다.

+0

큰 설명 주셔서 감사합니다! 나는 패스워드를 남겨 두는 것이 중요하지 않다는 것을 의미했다. 나는 단순히 그것이 .pub 파일을 찾는 나의 능력에 영향을 미치지 않는다는 것을 의미했다.) 이제 나는 세부 사항을 알고 있으므로, 나는 그것을 사용할 것이다. –

1

이 단계에있는 경우 :

는 "키 (/home/ryan/.ssh/id_rsa) 저장할 파일을 입력 :"

그냥 기본값을 저장해야합니다 당신의 .ssh 폴더에있는 홈 디렉토리 (/ home/ryan)의 키를 id_rsa로 입력하십시오. 그러면 공개 키는 /home/ryan/.ssh/id_rsa.pub <에 있습니다.이 키는 Assembla 계정에 업로드하려는 키입니다.

기본 위치에 ssh 키가 저장되었으므로 다른 용도로 사용할 필요가 없습니다.

자식 클론 [email protected] : 그것은 당신의 Assembla 계정에 업로드으로

, 당신은 그 자식 복제 할 수 있습니다.com : repo_name

"gitrep"라고 대답하면이 파일에 키를 저장합니다. 현재 디렉토리에서 집 주소 (/ home/ryan)로 가정합니다.

+0

내 개발 루트 (/ opt/lampp)를 원점으로 푸시하려고하기 때문에 실제로/opt/lampp에있었습니다. 그래서 내가 ssh 키를 생성하면 파일을 로컬 드라이브에 보관하는 것이 중요하지 않다고 말하는 것입니까? –

+1

홈 디렉토리에 .ssh/config를 설치하는 것이 좋겠지 만 기본 위치를 사용하므로이 작업을 수행 할 필요가 없습니다 (/home/ryan/.ssh/id_rsa) - it 나중에 혼란을 제거 할 것입니다. – Michael