암호 프롬프트없이 한 서버에서 다른 서버로 SCP


19

scp암호를 묻지 않고 한 상자에서 다른 상자로 가는 가장 좋은 방법은 무엇입니까 ?

두 개의 서버가 있습니다 :

  • 서버 A (10.152.2.10) : /home/oracle/export/files.txt

  • 서버 B (10.152.2.11) : /home/oracle/import/

scp비밀번호를 입력하라는 메시지가 표시되지 않고 서버 A에서 서버 B로 파일을 전송하려면

[서버 A에서 이것을 실행 /home/oracle/export/]

scp files.txt oracle@10.152.2.11:/home/oracle/import

명령을 입력하면 암호를 묻는 메시지가 나타납니다.

키겐이 생성되어 서버 A에 복사되어야한다는 것을 이해합니다. 따라서 [서버 A에서] :

ssh-keygen -t rsa

이렇게하면 두 개의 파일이 저장됩니다 /home/oracle/.ssh.

id_rsa
id_rsa.pub

1. 두 파일 ( id_rsa, id_rsa.pub)을 서버 B 에 복사해야 /home/oracle/.ssh합니까?

이것에 대한 Google 검색을 수행하는 동안 authorized_keys에 이것을 추가 / 연결하는 방법에 대해 언급했습니다.

2.이 파일을 직접 만들어야합니까?

나는 이것을하는 올바른 방법에 대해 혼란스러워하는 것 같습니다.

Btw, 두 서버는 Suse Linux Enterprise Edition 9를 실행 중입니다 ...


1
'keychain'을 사용해보십시오 : gentoo.org/proj/en/keychain

답변:


16
  1. 아니, 당신은 당신 id_rsa자신 을 유지 합니다; 그러나 id_rsa.pub공개 키인을 액세스하려는 서버로 복사 할 수 있습니다. 의 끝에 연결하십시오 ~/.ssh/authorized_keys.
  2. 예, ~/.ssh/authorized_keys아직 작성하지 않은 경우 작성할 수 있습니다 . 그렇지 않으면을 사용하여 파일 끝에 추가하십시오 cat id_rsa.pub >>~/.ssh/authorized_keys.

11

또한라는 모든 것을 정렬하는 도구가 있습니다 ssh-copy-id.

authorized_keys파일에서 실행중인 키가 있으면 에이전트에 키를 추가 하고 올바른 권한이없는 경우 키를 만듭니다. 에이전트를 실행하지 않는 경우 다음으로 푸시 할 키를 지정할 수 있습니다 -i.ssh-copy-id -i ~/.ssh/id_rsa


5

또한 다양한 파일 및 디렉토리에 대한 권한을 확인해야합니다.

authorized_keys needs perms of 600 (chmod 600 authorized_keys)
the .ssh directory should be 700
your home directory should be at most 744

귀하 이외의 다른 사람이 귀하의 홈 디렉토리를 쓸 수 없어야합니다.


0

ssh-keygen암호가 덜 전송되어 생성 된 키를 구성한 경우 전송이 작동하지 않으면 다음과 같이 상세 모드 명령으로 소스 시스템에서 사용 된 공개 키를 확인하십시오.

sftp -v -oPort=22 userid@server

일반적으로을 /home/<user>/.ssh/id_rsa.pub 사용하여 생성 한 공개 키와 다를 수있는 공개 키를 나타냅니다 ssh-keygen. id_rsa.pub대상 서버에서 이것을 추가해야 합니다.


0

나는 다음을 할 것이다 :

클라이언트에서 :

ssh-keygen -t rsa
ssh-copy-id oracle@10.152.2.11

클라이언트에서 서버로 키를 복사합니다. 링에 키를 추가하려면 서버의 비밀번호가 필요합니다.

  • 비밀번호 인증이 켜져 있거나 키 파일을 서버로 직접 전달해야합니다.

서버에서 :

최소한 비밀번호 인증을 끄십시오.

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