문제

나는 그것을 알지 않는 것이 좋지만,그것은 모든 가능한에 전달하는 사용자의 암호 scp?

고 싶은 파일을 복사를 통해 scp 의 일부로 배치 작업 및 받는 서버에서는 물론,암호가 필요하고,아니요,쉽게 바꿀 수 없는 주요 인터페이스입니다.

도움이 되었습니까?

해결책

할 수 있는 스크립트와 같은 도구 (거기에 편리한 바인딩도 Pexpect 에 대한 Python).

다른 팁

sshpass:

sshpass -p "password" scp -r user@example.com:/some/remote/path /some/local/path

또 그렇게 암호를 표시하지 않습 bash 역사

sshpass -f "/path/to/passwordfile" scp -r user@example.com:/some/remote/path /some/local/path

위의 내용 복사본의 경로를 원격 호스트에서 당신의 로컬입니다.

설치:

  • ubuntu/debian
    • apt install sshpass
  • centos/fedora
    • yum install sshpass
  • mac w/macports
    • port install sshpass
  • mac w/양조
    • brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master‌​/Library/Formula/ssh‌​pass.rb

단지 생성 ssh 세요:

ssh-keygen -t rsa -C "your_email@youremail.com"

의 콘텐츠를 복사 ~/.ssh/id_rsa.pub 그리고 마지막으로 추가하여 원격 기계 ~/.ssh/authorized_keys

는지 확인 원격 컴퓨터가 사용 권한 0700 for ~./ssh folder0600 for ~/.ssh/authorized_keys

에 연결하려면 서버에서 윈도우,퍼티 버전의 scp("는 다음 각 호의 사항을 준수하여야 한")할 수 있습을 통과와 비밀번호 -pw 매개 변수입니다.

이 설명서에서 언급한 여기에.

사용할 수 있는'기'스크립트는 유닉스에/공항 터미

예를 들어 만들기'시험합니다.exp':

#!/usr/bin/expect
        spawn scp  /usr/bin/file.txt root@<ServerLocation>:/home
        set pass "Your_Password"
        expect {
        password: {send "$pass\r"; exp_continue}
                  }

스크립트를 실행

expect test.exp 

도움이 되기를 바랍니다.

컬으로 사용할 수 있는 대안을 scp 파일을 복사하고 그것을 지원하는 명령행에 암호.

curl --insecure --user username:password -T /path/to/sourcefile sftp://desthost/path/

여기에는 예입니다 어떻게 당신이 그것으로 expect 구:

sub copyover {
    $scp=Expect->spawn("/usr/bin/scp ${srcpath}/$file $who:${destpath}
+/$file");
    $scp->expect(30,"ssword: ") || die "Never got password prompt from
+ $dest:$!\n";
    print $scp 'password' . "\n";
    $scp->expect(30,"-re",'$\s') || die "Never got prompt from parent 
+system:$!\n";
    $scp->soft_close();
    return;
}

아무도 그것을 언급하지만, 퍼티 scp (pscp)가-pw 옵션을 위해 암호입니다.

문서 여기에서 찾을 수 있습니다: https://the.earth.li/~sgtatham/putty/0.67/htmldoc/Chapter5.html#는 다음 각 호의 사항을 준수하여야 한

  1. 이 있는지 확인"기대하"도하기 전에,그렇지 않을 경우 그

    # apt-get install expect

  2. 을 만들은 스크립트 파일로 다음과 같은 내용입니다.(#vi/root/scriptfile)

    spawn scp /path_from/file_name user_name_here@to_host_name:/path_to

    expect "password:"

    send put_password_here\n;

    interact

  3. 실행하는 스크립트 파일로"예"도구

    # expect /root/scriptfile

일단 설정 ssh-keygen 위에서 설명한 바와 같이,당신이 할 수 있는

scp -i ~/.ssh/id_rsa /local/path/to/file remote@ip.com:/path/in/remote/server/

하려면을 줄이기 위해 입력하는 각 시간을 수정할 수 있습니다 .bash_profile 파일을 넣

alias remote_scp='scp -i ~/.ssh/id_rsa /local/path/to/file remote@ip.com:/path/in/remote/server/

그런 다음에서 당신의 터미지 source ~/.bash_profile.는 경우 사후에 입력할 remote_scp 터미널에서 그것을 실행해야 scp 지 않고 명령을 암호입니다.

사용할 수 있습니다 ssh-copy-id 추가 ssh 키:

$which ssh-copy-id #check whether it exists

존재하는 경우:

ssh-copy-id  "user@remote-system"

는 대안이 될 것 이라고 추가 공공의 반은 사용자의 핵심 인증-키에 파일 시스템입니다.시스템에서 당신은 시작에서 전송을 실행할 수 있습니다 ssh-agent 데몬 및 추가 개인의 절반이 핵심적이라고 판단했습니다.배치 작업할 수 있는 다음을 사용하도록 구성되어를 얻을 수 있도록 에이전트에 개인 키 보다는 오히려 자극에 대한 열쇠의 암호입니다.

이해야 할 수 있 중 하나에서 UNIX/Linux 시스템 또는 Windows 플랫폼을 사용하여 미인 대회와는 다음 각 호의 사항을 준수하여야 한.

단계 sshpass rhel/centos6:

# wget http://epel.mirror.net.in/epel/6/i386/epel-release-6-8.noarch.rpm
# rpm -ivh epel-release-6-8.noarch.rpm
# yum install sshpass

출처: https://community.mapr.com/thread/9040

이 정말 도움이 대답 .

rsync -r -v --progress -e ssh user@remote-system:/address/to/remote/file /home/user/

뿐만 아니라 전달할 수 있는 암호이지만,또한 그것은 진행률이 표시됩 복사하는 경우.정말 굉장하다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top