ssh (한국어)

나는 Linux (centos) 시스템을 사용하고 있습니다. 이미

. 이제 내 질문은 한 시스템에서 다른 시스템으로 파일을 복사하는 방법입니다.

내 환경에 및 System B. 저는 System A 머신을 사용하고 있고 다른 머신은 System B 머신.

System B에서 System A로 파일을 복사하려면 어떻게해야하나요? 그리고 System A에서 System B?

댓글

  • scp는 종종 성가신 돌이됩니다. 필요에 맞게 사용할 수 있다면 linuxjournal.com/article/8904 를 사용해보십시오. 원격 파일 시스템을 로컬로 마운트합니다.
  • @Alan " 성가신 "를 의미하시는 것 같습니다. Cumber Stone은 Magic 카드입니다.)
  • 다소 관련 : 암호화 된 아카이브 만들기 ssh 를 사용하는 원격 시스템의 로컬 dir/ : tar -c dir/ | gzip | gpg -c | ssh user@remote 'dd of=dir.tar.gz.gpg'
  • 원격 서버의 ftp에 액세스 할 수있는 경우 wget 을 사용하여 $wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to 참조 1 참조 2
  • 중복되지 않음, 링크 된 질문은 특별히 ; 그 답은 scp가 가장 좋고 가장 쉬운 방법입니다. 그래서 모드는 누군가가 다른 사람에게 갈 것처럼 중복 플래그를 제거하십시오. 가장 유용한 답변은 누락됩니다.

답변

구문 :

scp <source> <destination> 

받는 사람 B에 로그인 한 상태에서 B에서 A (으)로 파일 복사 :

scp /path/to/file username@a:/path/to/destination 

iv id에 로그인 한 상태에서 B에서 A (으)로 파일을 복사하려면 = “2a634c09ca”>

:

scp username@b:/path/to/file /path/to/destination 

댓글

  • 명확하게 말하면 일반적으로 ' scp를 사용하여 원격 서버 (시스템)에 로그인 한 상태에서 로컬 컴퓨터 (시스템 A)와 파일을 복사하지 마십시오. B) ssh. scp는 원격 서버에 로그인하고 파일을 복사 한 다음 한 프로세스에서 다시 로그 아웃하므로 로컬 컴퓨터의 셸에서 실행하면됩니다. 즉, SSH를 통해 시스템 B에 로그인하고 시스템 B와 시스템간에 파일을 복사하려는 경우 scp를 사용할 수 있습니다. ' C.
  • @DopeGhoti. 예, ' 두 원격 컴퓨터간에 파일을 이동할 수 없습니다. 소스 또는 대상은 로컬 파일이어야합니다. 그러나 ssh를 사용하여 원격 시스템에 로그인하면 해당 시스템의 ' 명령 줄에서 두 원격 시스템간에 파일을 복사 할 수 있습니다.
  • 또한, 기억해야 할 중요한 점은 권한이있는 대상 머신의 폴더로만 scp 할 수 있다는 것입니다. 대상 사용자에게 권한이없는 대상으로 복사하려는 경우 먼저 파일을 사용자 '의 홈 디렉토리 또는 하위 디렉토리에 복사 한 다음 ssh를 대상 시스템 및 sudo를 최종 대상으로 이동
  • -r (재귀 적) 및 -p (시스템 메타 데이터 보존)를 기억하십시오. scp -rp < file1 > < file2 >
  • 예, -P는 원격 호스트의 TCP 포트를 지정합니다. ssh-p를 사용하기 때문에 매번 저를 잡습니다.

Answer

대체 방법이 필요한 경우

sshfs를 설치합니다. ubuntu / debian을 사용하는 경우 :

sudo apt-get install sshfs 

또는 centos / rhel을 사용하는 경우 :

sudo yum install fuse-sshfs 

또는 macOS

brew install sshfs 

빈 디렉토리 만들기

mkdir /home/user/testdir 

두 디렉토리를 “연결”또는 “마운트”

sshfs [email protected]:/remote/dir /home/user/testdir 

디렉터리 “연결 해제”

fusermount -u /home/user/testdir 

BSD 및 macOS에서 파일 시스템을 마운트 해제하려면 :

umount mountpoint 

또는

diskutil unmount mountpoint 

자세한 내용은 linuxjournal.com libfuse / sshfs

댓글

  • 이 질문은 구체적으로 해당 OS가 CentOS임을 나타냅니다. 데비안에서 파생되지 않았습니다. apt-get는 데비안주의입니다. 올바른 패키지 관리자는 yum 또는 실제로 오래된 CentOS 버전의 경우 up2date 또는 rpm.
  • +1이 질문에 대한 답변은 문맥과 다를 수 있지만 여전히 저를 도왔고 제가 볼 수있는 한 다른 사람들도 도움이되었습니다.
  • 관련이 없지만 ' 100 만 달러의 답변 xD
  • 올바르게 이해하면 원격 파일에 대한 액세스 권한이 부여되지만 복사하지는 않습니까?
  • @ ToolmakerSteve you ' 완벽하게 맞습니다. 가짜 디렉터리 (마운트)를 생성하여 원하는 모든 도구를 사용하여 사물을 복사하거나 이동할 수 있습니다. cp, mv, rm, rsync, unisonscp 명령은 파일 만 복사 할 수 있습니다.

답변

때로는 tar로 멋지게 꾸며야 할 때가 있습니다.

tar -C / -cf - \ opt/widget etc/widget etc/cron.d/widget etc/init.d/widget \ --exclude=opt/widget/local.conf | ssh otherhost tar -C / -xvf - 

댓글

  • 창의성? 이것이 우리가 테이프 드라이브를 공유하는 방법입니다. 🙂
  • 이게 어떤 역할을하는지 말씀해 주시겠습니까? 예를 들어 ' cron '이 파일 복사와 어떤 관련이 있는지 모릅니다!
  • @aliqandil opt / widget etc / widget etc / cron.d / widget etc / init.d / widget은 tar 아카이브에 포함될 개별 파일입니다. 요점은 때때로 당신이 화려해야하는 이유를 설명하는 것이 었습니다. 이 일련의 명령은 ssh 연결을 통해 tar 아카이브를 스트리밍하고 다른 쪽에서 아카이브를 해제합니다. 따라서 tar 아카이브는 디스크에 기록되지 않습니다. 나는 때때로 이것을 하나의 명령으로 복사 할 파일을 체리 선택하는 데 사용합니다.
  • 오! 나는 첫 번째 ' / '가 소스 경로라고 가르쳤습니다! (무엇입니까?) 어리석은 질문이었습니다! 감사. 🙂
  • Tar는 " / "로 chdir하므로 다음 모든 경로는 " / ".

답변

두 시스템의 파일을 동기화 상태로 유지하려면 rsync 프로그램을 살펴보세요.

(여기에서 자습서 참조)

댓글

  • 이것은 진정한 전문 도구입니다.

답변

공통 OS 중 하나가있는 경우 여러 코어를 사용한다는 점을 제외하고 gzip과 동일한 pigz를 설치할 수 있습니다. 빠른 네트워크를 통해 더 빨라집니다. 내 명령이 약간 다릅니다.

tar cf - -C /opt -S <dir> | pigz | ssh <target> "pigz -d | tar xf - -C /opt -S" 

또는 파일을 가져 오는 다른 방법

ssh <target> "tar cf - -C /opt -S <dir> | pigz" | pigz -d | tar xf - -C /opt -S 

또는

ssh <target> "tar cf - -C / --one-file-system -S --numeric-owner . | pigz" > root.tgz 

댓글

  • 그리고 ssh -J를 사용하여 프록시 서버를 통과 할 수 있습니다.

답변

SSH로 제어되는 NVIDIA Jetson 컴퓨터를 통해 작동하는 더 간단한 방법은 SFTP (SSH 파일 전송 프로토콜)에 연결하는 것입니다.

문서를 이동한다고 가정합니다. UFO_blueprint.odt NASA의 원격 서버에서 내 문서로 이동합니다.

  1. cd 파일을 저장할 위치로
$ cd Documents 
  1. 연결
$ sftp sammy@your_server_ip_or_remote_hostname 
  1. 전송할 파일이있는 디렉토리로 이동합니다.
$ cd NASA/secret_files/ 
  1. 전송
$ get UFO_blueprint.odt 

전체 디렉토리를 얻으려면 대신

$ get -r secret_files/ 

댓글

  • 파일 업로드 명령

답변

파일 및 폴더의 Unix / Linux 재귀 사본 다음 코드를 사용하여 보안 셸을 통해 :

scp -r <host@machine_name:from_remote_directory_path> <to_local_directory_path> 

전체 예는 다음과 같습니다.

scp -r sizwe@hprobook:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects 

호스트 이름을 확인할 DNS 서버가없는 경우 IP 주소를 대신 사용하십시오. 위의 예는 다음과 같습니다.

scp -r 192.168.43.167:./home/sizwe/PycharmProjects ./home/immaculate/OtherPycharmProjects 

Answer

실행중인 경우 다른 포트의 SCP / SSH는 대문자 -P 포트 옵션을 지정해야합니다.

예 :

 scp -P 7121 /users/admin/downloads/* [email protected]:/home/  

댓글

  • 이 질문은 7 년 전이며 많은 답변이 있습니다. 이미. ssh가 기본이 아닌 포트를 사용할 수 있고 ssh 클라이언트 '의 -P 옵션이 필요한 것은 사실이지만 ' 당면한 문제에 실제로 도움이되지 않습니다. 최근 질문에 집중 해보세요.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다