FTP 또는 SSH를 사용하여 명령 줄에서 파일을 업로드하는 방법은 무엇입니까?


30

나는 이것을 전에 한 적이 없으며 나는 이것을 위해 bash 쉘 스크립트를 만들고있다. 또한 ssh를 통해 몇 가지 작업을 수행하기 위해 연결합니다 (이미 수행 방법을 이미 알고 있음). ssh를 통해 파일을 업로드하는 방법이 있으므로 한 번의 연결로 모든 작업을 수행 할 수 있습니까?

어떻게해야합니까?

#!/bin/sh

cd ./files-to-upload
#upload the files

이것은이 질문에 대한 답은 아니지만 아마도 어떤 사람들 에게는 도움이 될 수 있습니다. curl.io를 사용 하면 bash를 통해 공개 http 호스팅에 파일을 업로드 할 수 있습니다 (몇 시간 동안 유효합니다)
Vincent Fenet

답변:


56

scp원격 시스템으로 복사하는 데 사용할 수 있습니다 .

scp <file to upload> <username>@<hostname>:<destination path>

암호도 함께 전달할 수 있습니까? 또한 이것은 ssh 세션을 초기화합니까? 다른 명령도 실행할 수 있습니까?
Andrew

2
아니요 비밀번호를 전달할 수 없습니다. 그러나 ssh 키 인증을 설정할 수 있습니다. 즉, 비밀번호를 통해 인증하는 것이 아니라 파일에 저장되고 연결시 자동으로 전송되는 키를 통해 인증됩니다. 그리고 다시는 이것으로 다른 명령을 실행할 수 없습니다.
Felix

ssh와 연결하고 scp를 실행할 수 있습니까? 아니면 별도의 명령입니까?
Andrew

2
ssh그리고 scp다른 명령입니다. 소개의 참조를 들어 ssh.com/support/documentation/online/ssh/adminguide/32/...
tangens

1
@Felix는 ssh 키 인증을 설정하지 않으면 비밀번호를 묻는 메시지가 표시됩니다 . 즉,이 설정을 사용하는
것이이

6

아마도 SCP 나 비슷한 것을 찾고있을 것입니다.

#!/bin/bash

cd ./files-to-upload
scp * user@host:/path/to/upload/files/to

물론 이것은 원하는대로 조정해야합니다. user @ host를 실제 정보로 바꾸십시오. 업로드 할 비밀번호를 묻는 메시지가 나타납니다.


4

실제로 scp 대신 ssh를 사용해야하는 경우 다음을 수행 할 수 있습니다.

for filename in *; do
  cat $filename | ssh user@host "cd /path/to/upload/files/to; cat - > $filename"
done

그러나 탄 젠스 제안 과 같은 규칙적인 scp 가 가장 좋습니다.


FTp 연결을 사용하는 경우 filezilla 또는 winscp를 사용하여 로컬에서 원격으로 파일을 전송하거나 복사하는 방법을 알려 주시겠습니까 ... Zip을 추출하거나 로컬에서 원격으로 복사해야합니다
Sushivam

1

scp는 SSH를 통해 암호화되므로 더 나은 대답입니다.

그러나 표준 ftp를 통해 수행하려면 ncftpput을보십시오. 파일을 업로드하도록 특별히 설계되었습니다.

이름 ncftpput-스크립트 용 인터넷 파일 전송 프로그램

시놉시스 ncftpput [옵션] 원격 호스트 원격 디렉토리 로컬 파일 ...



0

당신이 사용하는 경우 scp(보안 복사)는 클라이언트에 연결 명령과 이미 호스트 장치에 저장된 지문이없는 경우는 호스트 암호를 요청합니다 그렇지 않으면 자동 내가 믿는 호스트에 연결해야합니다.


0

ec2 인스턴스의 경우 .pem파일도 전달해야 합니다.

$scp -i ~/Desktop/amazon.pem ~/Desktop/file.zip  ubuntu@ec2-54-166-128-20.compute-1.amazonaws.com:~/data/
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.