scp
이 명령을 사용하여 비밀번호를 입력하지 않고 한 서버에서 다른 서버로 파일을 전송하려고 합니다 . 이를 위해 키 파일을 생성하고 이를 각 서버의 .ssh
폴더에 복사했지만 명령을 실행할 때 scp
다른 서버의 비밀번호를 입력해야 합니다.
저는 Cloudways 서버를 사용하고 있습니다. .ssh
파일을 편집할 수는 없지만 해당 포털을 사용하여 키를 추가하고 authorized_keys
.
나는 다음 명령을 사용하고 있습니다 :
scp -o StrictHostKeyChecking=no -rv /home/00000000.cloudwaysapps.com/fdbbgbgbgb/public_html/Test1/test.html [email protected]:/home/0000000.cloudwaysapps.com/bgbtrbgb/public_html/Test1
서로 다른 두 서버 간의 전송을 자동화하려면 어떻게 해야 합니까? 저도 해봤는데 ssh-keygen
서버에서는 안되네요. 키를 로컬에서 생성하고 두 서버에 수동으로 추가했습니다. 이 키를 사용하면 암호를 입력하지 않고도 두 서버에 모두 로그인할 수 있습니다. 서버 간에 파일을 전송할 때만 암호를 입력하라는 메시지가 표시됩니다.
왜 이런 일이 발생하는지 그리고 첫 번째 서버에서 두 번째 서버의 SSH 키를 어떻게 구성해야 하는지 설명할 수 있습니까?
답변1
키를 로컬에서 생성하여 두 서버에 수동으로 추가했기 때문에 비밀번호를 입력하지 않고도 두 서버에 모두 로그인할 수 있었고 파일을 전송할 때 비밀번호만 제공되었습니다.
로컬 시스템과 원격 시스템 간에 파일을 복사하거나 로컬 시스템에서 로그인할 때 인증서 기반 인증을 설정할 수 있으며 이것이 이미 작동하고 있음을 알 수 있습니다. (적어도 ssh
비밀번호는 필요하지 않다고 설명하셨는데, 이는 거의 동일합니다.)
date >date.txt
scp date.txt remoteHostA:
scp date.txt remoteHostB:
그러나 지금 하고 있는 작업은 에 로그인된 상태에서 에서 로 복사하는 것입니다 remoteHostA
. 이제는 고객이므로 고객을 그렇게 대해야 합니다.remoteHostB
remoteHostA
remoteHostA
remoteHostA
유사한 방법을 사용하여 SSH 키를 생성하고 ssh-keygen -t ed25519
로컬 컴퓨터에서 공개 키를 설치할 때와 동일한 방식으로 결과 공개 키를 전송 및 설치 해야 합니다.remoteHostB
또는 로컬 시스템을 통해 remoteHostA
파일을 전송할 수 있지만 remoteHostB
이 작업을 수행하려면 해당 시스템에 로그인하고 거기에서 명령을 실행해야 합니다.
scp -3v remoteHostA:date.txt remoteHostB:
-r
(이 플래그는 파일의 디렉토리 트리를 복사할 때만 필요합니다.)