SSH 키를 다른 컴퓨터로 전송하는 방법은 무엇입니까?


42

H1과 H2의 두 컴퓨터에 계정이 있습니다. H1에 ssh 키를 만들어 S1에 설치했습니다. 이제 H1에서 S1로 ssh 할 수 있습니다. 나는 H2에서 똑같이하고 싶습니다. H2에서 H1에 생성 된 ssh 키를 어떻게 설치합니까?


2
때문에 ssh-copy-id더 바보 - 증거 (기존 키 또는 실수로 복사없이 겹쳐 쓰기 개인 대신의 주요 공공 덜 알려진 해결책 키)의 허용 답변으로 그 대답 중 하나를 받아들이 고려하시기 바랍니다.
agtoever

답변:


28

편집 : 두 컴퓨터를 모두 소유 한 경우 개인 키를 공유 할 수 있습니다. 그러나이 솔루션은 노트북을 도난당한 경우 나 소유하지 않은 컴퓨터에는 안전 하지 않습니다.

동일한 개인 키를 사용하여 H2에서 S1로 로그인 할 수 있도록하려면 개인 키를 H1에서 H2로 복사 할 수 있습니다. H1에있을 때 다음 명령을 수행하십시오.

H1$ ssh H2 mkdir ~/.ssh
H1$ scp  ~/.ssh/id_rsa ~/.ssh/id_dsa H2:~/.ssh/

경고! 그러면 H2에 있던 개인 키가 삭제되고 교체됩니다.

더 좋은 방법 은 H2 ( ssh-keygen) 에 새 개인 키를 생성 하고 ssh-copy-idutil을 사용 하여 S1에 공개 부분을 설치하는 것 입니다. 이보다 안전한 경우에는 두 개의 키 세트가 있습니다. 하나는 H1-S1 로그인 용이고 다른 하나는 H2-S1 로그인 용입니다. S1에는 두 개의 공개 키가 인증됩니다. 또한 노트북을 도난 당했거나 컴퓨터 소유자가 계정을 비활성화하고 모든 파일을 재사용하기로 결정한 경우와 같이 둘 중 하나 또는 둘 다를 취소 할 수 있습니다.


8
개인 키를 복사하는 것은 좋은 생각이 아닙니다. 여러 위치에 단일 키가 있으면 1. 키가 더 취약 해집니다. 2. 모든 위치를 제어 할 수없는 위험이 증가합니다. 3. 한 위치에서 액세스를 비활성화 할 수 없습니다. 보안 관점에서 Mu Qiao의 솔루션 인 모든 위치에서 새로운 키 페어를 생성해야합니다.
pabouk

27

사용하다 ssh-copy-id

개요

ssh-copy-id [-i [identity_file]] [user @] 컴퓨터

기술

ssh-copy-id는 ssh를 사용하여 원격 시스템에 로그인하고 표시된 ID 파일을 해당 시스템의 ~ / .ssh / authorized_keys 파일에 추가하는 스크립트입니다.


1
@ H2에서 S1로 ssh를하고 싶습니다. 개인 및 공개 키를 H1에서 H2로 전송하고 설치하고 싶습니다. 그렇게할까요?
브루스

3
@Bruce 아니오, h2에서 키를 재생성하고 해당 명령을 사용하여 키를 복사해야합니다. 또 다른 방법은 h1과 h2가 홈 디렉토리를 공유하게하는 것입니다.
Mu Qiao

9

두 개의 개인 키 사용

(하지만 같은 프로세스를 사용하여 H2를 설정 하지 동일한 개인 키)는 H1 설정할 때처럼 :

  • 다른 컴퓨터에서 개인 키를 복사해야 할 이유는 없습니다. H2에서 아직 새로운 개인 키를 생성하지 않은 경우 지금 생성하십시오. 해당 공개 키도 생성하십시오. H2의 터미널에서

유형: ssh-keygen -t rsa

  • H2의 공개 키를 서버에 복사하십시오. H2의 터미널에서

유형: ssh-copy-id username@S1.net

(단, S1 및 S1의 호스트 이름에 실제 사용자 이름을 사용하고 나중에 요청시 S1에 비밀번호를 입력하십시오).

그러면 워크 스테이션의 공개 키가 ~/.ssh/authorized_keys서버에서 해당 사용자 의 파일에 설치됩니다 .

  • 3 단계는 없습니다. 이제부터 H2에서 S1에 로그인하고 H1에서 S1에 로그인 할 수 있습니다.

세부

나는 당신이 정말로 요구하는 것이

  • 서버가 있습니다 ( "S1")
  • 개인 랩탑 ( "H1")에서 서버에 로그인합니다
  • 또한 내 워크 스테이션 ( "H2")에서 서버에 로그인하고 싶습니다.

그렇게하는 올바른 방법은 무엇입니까?

  • 두 곳에서 동일한 비밀번호로 간단히 로그인 할 수 있다고 가정합니다. 모두가 공개 키 인증이 암호보다 훨씬 낫다고 말하기 때문에 올바른 방법은 아닙니다. (에이)
  • 랩톱에서 워크 스테이션으로 개인 키를 간단히 복사 할 수 있다고 가정합니다. 개인 키는 절대 클라이언트 시스템을 떠나지 않아야한다고 모든 사람이 말하기 때문에 올바른 방법은 아닙니다.

사람들은 서버에있는 하나의 계정에 하나의 사용자 이름과 물론 하나의 인증 된 암호가 있다고 생각합니다.

ssh와 같은 공개 키 시스템은 암호 시스템보다 낫습니다. 서버의 한 계정에는 단일 사용자 이름과 인증 된 공개 키가 있으며 모두 ~/.ssh/authorized_keys파일에 나열되어 있습니다.

( 자세한 내용 ).


반복해서 나를 용서하십시오 .
David Cary

0

ssh-copy-id가 당신을 위해 일을 하시겠습니까 : http://linux.die.net/man/1/ssh-copy-id ?


@ H2에서 S1로 ssh를하고 싶습니다. 개인 및 공개 키를 H1에서 H2로 전송하고 설치하고 싶습니다. 그렇게할까요?
Bruce

2
ssh-copy-id를 사용하여 S1 또는 H1 (현재 키가 있음)에 로그인 한 경우 공개 키 (개인 키 아님)를 H2로 전송할 수 있습니다. 일반적으로 개인 키가 설치된 시스템 수를 제한하는 것이 가장 좋습니다. 손실을 방지하기 위해 몇 대의 안전한 컴퓨터에만 보관하십시오.

개인 키를 H2에 어떻게 복사합니까?
Bruce

0

한 컴퓨터에서 다른 컴퓨터로 SSH 키를 이동합니다. H1 (이전 시스템)에서 ~ / .ssh의 전체 폴더를 새 시스템 H2의 ~ / .ssh 컨텐츠 폴더로 복사하면됩니다.

이제 시도하십시오 :

ssh ubuntu@13.123.43.26 (S1 IP)

아마도 그 실행을 수정하기 위해 권한 경고가 나타납니다.

chmod 400 ~ / .ssh / id_rsa

이제 다시 :

ssh ubuntu@13.123.43.26 (S1 IP)

이제 잘 작동합니다.

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