В настоящее время я работаю над ноутбуком windows 10. Я установил в него подсистему ubuntu (вместо PUTTY) для доступа к удаленному серверу. Когда я запускаю подсистему ubuntu из стартового меню windows, она открывается с помощью командной строки user@PC0BCD-PC
Удаленный сервер также является Linux-сервером.
Кроме того, я подключен к VPN. Если я не подключусь к VPN, я не смогу войти на удаленный сервер.
Итак, я хотел бы передать файл из моей локальной подсистемы windows ubuntu на удаленный сервер
Итак, я попробовал команду ниже и получил ошибку, как показано ниже
scp /mnt/c/Users/test/Downloads/DC_cond.csv test@172.XX.YYY.Z:/home/test/cond_occ.csv
ssh: connect to host 172.XX.YYY.Z port 22: Resource temporarily unavailable
lost connection
/mnt/c/Users/.....
указывает путь в моей локальной системе, в то время как test@172.XX.YYY.Z
указывает адрес моего удаленного сервера.
когда я набираю telnet 172.XX.YYY.Z 22
в моем WSL, он просто говорит Попробуйте 172.XX.YYY.Z
, тогда как когда я SSH вставляю удаленный сервер и набираю telnet 172.XX.YYY.Z 22
, он выдает вывод для команды telnet
, но не может передавать файлы с удаленного сервера в локальную систему также и на локальный.
Может ли он мне помочь?
Из комментариев мы обнаружили, что «основная проблема» заключалась в том, что вы могли получить доступ к серверу, когда ssh
, а оттуда вы могли scp
. Но при попытке scp
напрямую на сервер из сеанса WSL в VPN он оказался недоступен.
Для будущих читателей может быть несколько (других) причин, по которым scp
не работает, когда ssh
работает:
Возможно, проблема с сервером. Сообщается, что на некоторых серверах, на которых работают определенные версии libssh2
, есть проблема с scp
, хотя это уже исправлено на некоторое время, поэтому увидеть это будет редко.
Файлы запуска оболочки на сервере могут выдавать какой-то текст. Это будет работать с интерактивным сеансом ssh
, но вызовет проблемы с scp
. Однако сообщения об ошибках, которые вы видите, не совсем соответствуют этому.
Оказывается, похоже, что вы использовали имя хоста с ssh
, но вы пытались использовать IP-адрес с scp
. Имя хоста сработало, потому что в вашем ~ / .ssh / config
:
Host server_1
Hostname 172.xx.yyy.z
User test
ProxyCommand ssh -q -a pitunnel -W %h:%p
TCPKeepAlive yes
Это позволило ssh server_1
использовать ProxyCommand
для подключения через сервер в VPN с именем pitunnel
к server_1
.
Хотя вы уже обнаружили, что вы можете просто использовать имя хоста server_1
с scp
, чтобы заставить его работать (поскольку он также читает тот же ~ / .ssh / config
), вы также должны иметь возможность изменить конфигурацию, чтобы разрешить доступ к имени хоста и IP. Просто измените первую строку на:
Host server_1 172.xx.yyy.z
Это указывает ssh
и scp
использовать указанные ниже настройки для как имени хоста, так и IP.
Еще одно примечание.Вы разумно скрываете IP-адрес, но в этом случае, скорее всего, нет необходимости. Если xx
находится в диапазоне от 16 до 31, то IP-адрес находится в так называемой «частной сети Интернет». Это похоже на адреса типа 192.168.1.1
, которые вы видите на своем домашнем маршрутизаторе. Все могут использовать одни и те же диапазоны IP-адресов, поскольку они не маршрутизируются через общедоступный Интернет.
Вот почему вы должны подключиться к VPN и использовать прокси для доступа к нему. Во-первых, его нет в общедоступном Интернете.
openssh-server
может не быть установлен на сервере, или порт 22 может быть заблокирован сервером или маршрутизатором VPN.
Чтобы проверить последнее, вы можете изменить порт для использования в конфигурации openssh-server на сервере, просто добавьте / замените конфигурацию порта на / etc / ssh / sshd_config
Port 80
или на любой другой порт, который вы уверены, что это не блокируется брандмауэром.
Вместо ssh -p 80
Вы также можете использовать любой другой порт (просто замените 80 на другой приемлемый порт), но порт 80, скорее всего, не ограничен.
Если у вас уже есть привязка службы к порту 80, вы столкнетесь с проблемами при изменении конфигурации. Чтобы перечислить все используемые порты на сервере, вы можете использовать ss
или netstat
, как описано Пьером АЛЬБАРДЕ в его комментарии.