키 파일을 사용하여 한 서버에서 다른 서버로 데이터를 전송하는 방법


25

scp를 사용할 수 없으며 다른 서버는 sftp 연결 만 사용합니다.

현재, 나는 노력하고 있습니다

sftp jay@server.name.com:/files> put -r ~/

-i keyname와, 단지 결의를 작동하지 않습니다 illegal option -- i.

답변:


34

시험:

sftp -o "IdentityFile=keyname" jay@server.name.com

-o에서 유효한 옵션을 전달하는 데 사용할 수 있습니다 ~/.ssh/config.


못을 박았다 감사! 정상적으로 유지하려면 어떻게합니까?
Jay

"정상적으로 유지"한다는 것이 무슨 의미인지 잘 모르겠습니다. 당신이 원하는 것을 의미하는 경우 IdentityFile항상 자동으로 부여하는 옵션을 체크 아웃 UtahJarhead 에 넣어 대해의 대답을~/.ssh/config
Celada

4

기존 방법을 사용하여 PUBLIC 키를 서버에 복사하십시오.

서버에서 :

  • .ssh존재하지 않는 경우 작성하십시오 .
[[! -d "$ {HOME} /. ssh"]] && mkdir -p "$ {HOME} /. ssh"
  • 공개 키를 구현하십시오.
cat /path/to/public_key.pub >> "$ {HOME} /. ssh / authorized_keys"
  • 적절한 권한을 설정하십시오. OpenSSH는 문제가되는 파일의 권한에 대해 매우 중요합니다.
chmod go-rwx "$ {HOME}" "$ {HOME} /. ssh / authorized_keys"

그런 다음 PRIVATE 키를 사용하여 클라이언트에서 로그인 할 수 있어야합니다. 전송을 자동화하려면 실행할 명령 목록이 들어있는 텍스트 파일 인 배치 파일을 사용하려고합니다.

echo "put filename.foo /safe/path/filename.foo">> /tmp/batchfile.txt
sftp -b /tmp/batchfile.txt -oIdentityFile = / path / to / private_key user @ host

또는 ssh_config 형식으로 ~ / .ssh / config 파일을 작성하여 나중에 입력하면됩니다.

sftp -b /tmp/batchfile.txt 호스트

샘플 내용 ~/.ssh/config

The_hostname 호스트
    사용자 user_name
    IdentityFile / path / to / private_key

다음 배치에서 시도해 볼 것입니다. 위의 솔루션은 속임수입니다.
Jay

1

EC2에서 sftp를 설정하려는 경우이 기사 가 도움 될 수 있습니다.


죄송합니다.
Jay

1
이 "답변"은 질문에 영향을 미치지 않습니다. 더 나쁜 것은 언젠가 사라질 페이지에 대한 링크 일뿐입니다.
John Mayor

0

최근 에이 문제에 봉착했으며 맥북 기본 터미널 설정에서 다음과 같이 작동했습니다.

sftp -i ./privateFilePath.key username@url.com

보호되지 않은 개인 키 파일 로 승격 될 수 있습니다 ! 이 경우 다른 사용자가 개인 키에 액세스 할 수 없도록하려면이 명령을 실행해야합니다.

chmod 600 privateFilePath.key 

경우 에 따라 명령 앞에 sudo 를 넣어야합니다 . 이는 관리자로 보호 된 디렉토리에서 작업중인 경우에만 해당됩니다

나는 그것이 도움이되기를 바랍니다 :)


-i옵션이 작동하지 않는다고 질문했을 때 왜 이것이 도움이 될 것으로 기대 합니까?
Scott
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.