Вот мой вывод на экран:
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
Увидеть: Скриншот
Ответы:
Вполне вероятно, что у вас есть пульт
PATH
установить, чтобы указать наscp
только для интерактивных сессий.scp
использует неинтерактивный сеанс.Для проверки попробуйте войти с
ssh -T -i ...
а затем попробуйте запуститьscp
,Вы должны получить ту же ошибку.
Другой набор сценариев запуска (может быть) получен для интерактивных и неинтерактивных сеансов. И / или разные ветки в скриптах берутся, исходя из отсутствия / присутствия
TERM
переменная окружения (или аналогичная).Вы, вероятно, должны исправить ваши сценарии запуска, чтобы установить
PATH
правильно в любой ситуации.источник
ssh -T -i ...
Вы, вероятно, можете заметить, что на экране копия обновления III вопроса. Однако, похоже, что я просто завис там и мне нужно нажать Ctrl-C, чтобы прервать процесс.which scp
,ssh -T -i ~/***.pem ubuntu@yabuat scp
или жеssh ... which scp
?bash: scp|which command not found
Кажется, что у вас есть УПП только на одной из ваших хост-машин, но не на другой.
Из скриншота видно, что УПП существует на хост-компьютере "ubuntu @ ip-172-31-25-135", но не существует на хост-компьютере "luog @ luog-satellite-P50-A".
SCP должен существовать на И ТО И ДРУГОЕ машины работают правильно.
Установите его на хост-компьютере "luog @ luog-satellite-P50-A", используя
sudo apt-get install openssh-client
, После этого все должно работать нормально.С Уважением, Майк
источник
which scp
, Это должно сказать нам, по какому пути точно установлены двоичные файлы scp.Посмотри на свой
~/.bashrc
файл на удаленной машине. Вы, вероятно, изменитеPATH
в этом:или что-то подобное. Прокомментируйте эту строку. Сейчас
scp
должно работать нормально.РЕДАКТИРОВАТЬ:
Это ошибка в
scp
https://bugzilla.redhat.com/show_bug.cgi?id=20527Если вы найдете неработающий код в
~/.bashrc
:источник
scp
, Это неверная конфигурация.У меня была похожая проблема с Zsh:
zsh:1: command not found: scp
Причина проблемы в моем случае какая то
$PATH
не был установлен в неинтерактивных сеансах (что имеет место дляscp
).Мое решение было:
ln -s zprofile /etc/zsh/zshenv
Предположительно решение с
bash
будет очень похоже.источник