これが私の画面出力です:
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
[email protected]:~$
[email protected]:~$ 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
[email protected]:~$
[email protected]:~$ 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
[email protected]:~$
[email protected]:~$ echo $Shell
/bin/bash
[email protected]:~$
[email protected]:~$ 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.
[email protected]:~$ 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$
参照: 注釈付きスクリーンショット
画面のコピーは、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
[email protected]:~$ 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
[email protected]:~$ 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$
参照: スクリーンショット
回答の1つで要求されているように、リモートサーバーとローカルシステムでのwhich scp
コマンドの結果は次のとおりです。
loug@loug-Satellite-P50-A:~/Downloads$ ssh -i ~/.keys/yab-ci.pem ubuntu@yabuat
[email protected]:~$ which scp
/usr/bin/scp
[email protected]:~$ 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を更新
@マーティン、これがあなたの指示に従った結果です
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
参照: スクリーンショット
インタラクティブセッションの場合のみ、リモートPATH
がscp
を指すように設定されている可能性があります。
scp
は非対話型セッションを使用します。
確認するには、ssh -T -i ...
でログインしてから、scp
を実行してみてください。
同じエラーが発生するはずです。
対話型セッションと非対話型セッション用に、異なるスタートアップスクリプトのセットが提供されている可能性があります。および/またはTERM
環境変数(または同様のもの)の有無に基づいて、スクリプト内のさまざまな分岐が取得されます。
どちらの状況でもPATH
を正しく設定するには、起動スクリプトを修正する必要があります。
私はzshで同様の問題を抱えていました:
zsh:1: command not found: scp
私の場合の問題の理由は何ですか$PATH
は非対話型セッションでは設定されませんでした(これはscp
の場合です)。
私の解決策は:
ln -s zprofile /etc/zsh/zshenv
おそらく、bash
を使用したソリューションは非常に似ています。
リモートマシンで~/.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
ホストマシンの1つだけにscpがあり、もう1つにはないようです。
スクリーンショットから、scpがホストマシン「ubuntu @ ip-172-31-25-135」に存在することがわかりますが、存在します。ホストマシン「luog @ luog-satellite-P50-A」ホストには存在しません。
SCPが正しく機能するには、[〜#〜]両方[〜#〜]マシンに存在する必要があります。
Sudo apt-get install openssh-client
を使用して、「luog @ luog-satellite-P50-A」ホストマシンにインストールします。その後は正常に動作するはずです。
よろしく、マイク