`bash: scp: ไม่พบคำสั่ง 'ขณะที่ฉันมี" scp "ใน" $ PATH "


3

นี่คือเอาท์พุทหน้าจอของฉัน:

loug@loug-Satellite-P50-A:~/Downloads$ scp -i ~/--------- browser-uat.zip ubuntu@yabuat:
bash: scp: command not found
lost connection
loug@loug-Satellite-P50-A:~/Downloads$
loug@loug-Satellite-P50-A:~/Downloads$ ssh -i ~/--------- ubuntu@yabuat
ubuntu@ip-172.31.25.135:~$
ubuntu@ip-172.31.25.135:~$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
ubuntu@ip-172.31.25.135:~$
ubuntu@ip-172.31.25.135:~$ echo $PATH
/opt/sonar/runner/bin:/snap/bin:/bin:/usr/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8
-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin:/usr/bin
ubuntu@ip-172.31.25.135:~$
ubuntu@ip-172.31.25.135:~$ echo $SHELL
/bin/bash
ubuntu@ip-172.31.25.135:~$
ubuntu@ip-172.31.25.135:~$ sudo apt install openssh-client
Reading package lists... Done
Building dependency tree
Reading state information... Done
openssh-client is already the newest version (1:7.2p2-4ubuntu2.1).
o upgraded, 0 newly installed, 0 to remove and 108 not upgraded.
ubuntu@ip-172.31.25.135:~$ exit
logout
Connection to yabuat closed.
loug@loug-Satellite-P50-A:~/Downloads$

ดู: ภาพหน้าจอบันทึกย่อ

ดังที่แสดงในการคัดลอกหน้าจอscpคำสั่งล้มเหลวด้วย

bash: scp: command not found
lost connection

อย่างไรก็ตามหลังจากฉันsshเข้าสู่เซิร์ฟเวอร์ระยะไกลและพิมพ์scpฉันสามารถเห็นคำสั่งนั้นพร้อมใช้งานและ$PATHสภาพแวดล้อมของฉันดี

เมื่อฉันพยายามติดตั้งopenssh-clientตามที่แนะนำในหลาย ๆ สถานที่ฉันได้รับopenssh-client is already the newest version

ตอนนี้ฉันติดอยู่และไม่รู้ว่าอะไรผิดปกติกับscpคำสั่ง

ปรับปรุง

ฉันได้openssh-clientติดตั้งในเครื่องไม่มีอะไรผิดปกติกับสภาพแวดล้อมในท้องที่:

loug@loug-Satellite-P50-A:~/Downloads$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
loug@loug-Satellite-P50-A:~/Downloads$ echo $PATH
/opt/play:/opt/idea/bin:/opt/maven/bin:/home/loug/bin_local:/home/loug/bin:/home/loug/.nvm/versi
ons/node/v7.7.4/bin:/usr/local/share/resin/bin:/home/loug/bin:/usr/local/sbin:/usr/local/bin:/us
r/sbin:/usr/bin:/usr/local/go/bin:/sbin:/bin:/usr/games:/usr/local/games
loug@loug-Satellite-P50-A:~/Downloads$

ดู: ภาพหน้าจอบันทึกย่อ

อัพเดต II

สำเนาหน้าจอแสดงให้เห็นว่าscpคำสั่งนั้นมีให้ที่ปลายทั้งสอง:

loug@loug-Satellite-P50-A:~/Downloads$ echo 'show we have local scp installed'
show we have local scp installed
loug@loug-Satellite-P50-A:~/Downloads$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
loug@loug-Satellite-P50-A:~/Downloads$ echo 'show teh error in scp files to remote'
show the error in scp files to remote
loug@loug-Satellite-P50-A:~/Downloads$ scp -i ~/.keys/yab-ci.pem browser-uat.zip ubuntu@yabuat:
bash: spc: command not found
lost connection
loug@loug-Satellite-P50-A:~/Downloads$ echo 'ssh into remote and test scp on remote'
ssh into remote and test scp on remote
loug@loug-Satellite-P50-A:~/Downloads$ ssh -i ~/.keys/yab-ci.pem ubuntu@yabuat
ubuntu@ip-172.31.25.135:~$ scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
ubuntu@ip-172.31.25.135:~$ exit
logout
Connection to yabuat closed.
loug@loug-Satellite-P50-A:~/Downloads$ echo 'so we proved the scp command available on both end'

so we proved the scp command available on both end
loug@loug-Satellite-P50-A:~/Downloads$

ดู: ภาพหน้าจอ

อัปเดต III

ตามที่จำเป็นโดยหนึ่งในคำตอบนี่คือผลลัพธ์ของwhich scpคำสั่งบนเซิร์ฟเวอร์ระยะไกลและระบบท้องถิ่น:

loug@loug-Satellite-P50-A:~/Downloads$ ssh -i ~/.keys/yab-ci.pem ubuntu@yabuat
ubuntu@ip-172.31.25.135:~$ which scp
/usr/bin/scp
ubuntu@ip-172.31.25.135:~$ exit
logout
Connection to yabuat closed.
loug@loug-Satellite-P50-A:~/Downloads$ ssh -T -i ~/.keys/yab-ci.pem ubuntu@yabuat
^Cloug@loug-Satellite-P50-A:~/Downloads$ which scp
/usr/bin/scp
loug@loug-Satellite-P50-A:~/Downloads$

ดู: ภาพหน้าจอบันทึกย่อ

อัพเดท IV สำหรับ Martin

@ มาร์ตินนี่คือผลลัพธ์ตามคำแนะนำของคุณ

loug@loug-Satellite-P50-A:~/Downloads$ ssh -T -i ~/.keys/yab-ci.pem ubuntu@yabuat
loug@loug-Satellite-P50-A:~/Downloads$ which scp
/usr/bin/scp
scp
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

ดู: ภาพหน้าจอ


2
ถ้าไม่จำเป็นจริงๆคุณควรคัดลอกข้อความจากการส่งออกและวางคอนโซลที่นี่แทนการโพสต์เป็นภาพ
phuclv

การโพสต์เป็นรูปภาพเป็นวิธีการแสดงและพิสูจน์บริบท ไม่จำเป็นต้องคัดลอก / วางสคริปต์ในการดำเนินการ
Gelin Luo

ฉันไม่เห็นสิ่งใดที่นี่ซึ่งไม่สามารถอธิบายเป็นข้อความได้ หากมีให้ใส่ความคิดเห็นในรหัส
phuclv

คำตอบ:


1

มีโอกาสมากที่คุณจะPATHตั้งค่ารีโมตให้ชี้ไปที่scpเซสชันการโต้ตอบเท่านั้น

scpใช้เซสชั่นที่ไม่ใช่แบบโต้ตอบ

เพื่อตรวจสอบการพยายามที่จะเข้าสู่ระบบด้วยแล้วพยายามที่จะเรียกssh -T -i ...scp

คุณควรได้รับข้อผิดพลาดเดียวกัน


สคริปต์เริ่มต้นชุดอื่นคือ (อาจมี) ที่มาสำหรับเซสชันแบบโต้ตอบและไม่โต้ตอบ และ / หรือสาขาที่แตกต่างกันในสคริปต์จะถูกนำขึ้นอยู่กับการขาด / การปรากฏตัวของTERMตัวแปรสภาพแวดล้อม (หรือคล้ายกัน)

คุณอาจต้องแก้ไขสคริปต์เริ่มต้นของคุณเพื่อตั้งค่าPATHอย่างถูกต้องในสถานการณ์ใดสถานการณ์หนึ่ง


ฉันพยายามเรียกใช้ssh -T -i ...คุณอาจสังเกตเห็นว่าในสำเนาหน้าจอของการปรับปรุง IIIของคำถาม อย่างไรก็ตามดูเหมือนว่าฉันเพิ่งถูกแขวนที่นั่นและฉันต้องกด Ctrl-C เพื่อให้กระบวนการทำงานล้มเหลว
Gelin Luo

มันอาจรอคำสั่ง which scpเพียงพิมพ์
Martin Prikryl

ดูอัปเดต iv
Gelin Luo

ตกลงสิ่งที่เกี่ยวกับssh -T -i ~/***.pem ubuntu@yabuat scpหรือssh ... which scp?
Martin Prikryl

พวกเขาทั้งหมดให้ฉันbash: scp|which command not found
Gelin Luo

0

ดูเหมือนกับว่าคุณมีscpในเครื่องโฮสต์เครื่องเดียว แต่ไม่ใช่เครื่องอื่น

จากภาพหน้าจอของคุณเราจะเห็นว่ามีscpอยู่ในเครื่องโฮสต์ "ubuntu @ ip-172-31-25-135" แต่ไม่มีอยู่ในเครื่องโฮสต์ "luog @ luog-satellite-P50-A" โฮสต์ .

ต้องมี SCP อยู่บนเครื่องทั้งสองเพื่อให้ทำงานได้อย่างถูกต้อง

ติดตั้งอยู่บน "luog @ luog ดาวเทียม-P50-A" sudo apt-get install openssh-clientโดยใช้เครื่องโฮสต์ มันควรจะทำงานได้ดีหลังจากนั้น

ขอแสดงความนับถือ Mike


ไม่มันไม่ใช่คำตอบที่ถูกต้อง โปรดดูอัปเดต
Gelin Luo

@green which scpคุณสามารถให้ผลของคำสั่ง สิ่งนี้ควรบอกเราว่าเส้นทางใดที่ติดตั้งไบนารีไบนารี่ไว้อย่างแน่นอน
39; lawless Leopard

ดูอัปเดต III
Gelin Luo

0

ดู~/.bashrcไฟล์ของคุณบนเครื่องระยะไกล คุณอาจแก้ไขPATHมัน:

export PATH="$PATH;~/bin/"

หรือสิ่งที่คล้ายกัน แสดงความคิดเห็นบรรทัดนี้ ตอนนี้scpควรทำงานได้ดี

แก้ไข:

นี่เป็นข้อผิดพลาดในscp https://bugzilla.redhat.com/show_bug.cgi?id=20527

หากคุณพบรหัสที่เสียหายใน~/.bashrc:

if [ "$SSH_TTY" ]
then
    # broken code
fi

scpมันไม่ได้เป็นข้อผิดพลาดของ มันตั้งค่าผิดพลาด
Martin Prikryl

0

ฉันมีปัญหาคล้ายกับ zsh:

zsh:1: command not found: scp

สาเหตุของปัญหาในกรณีของฉันสิ่งที่$PATHไม่ได้ถูกกำหนดในเซสชันที่ไม่โต้ตอบ (ซึ่งเป็นกรณีของscp)

ทางออกของฉันคือ:

ln -s zprofile /etc/zsh/zshenv

สันนิษฐานว่าการแก้ปัญหาด้วยbashจะคล้ายกันมาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.