2

Я хочу получить лог-файл с удаленного ПК через сервер шлюза на мой локальный ПК без ввода паролей. Сервер шлюза использовал acctA @ gatewayServer. Удаленный ПК использовал acctB @ remotePC.

Я настроил закрытые / открытые ключи SSH как на шлюзе, так и на удаленном.

Со своего локального ПК я мог подключиться к SSH напрямую через удаленный ПК через 2 прыжка без необходимости вводить пароли двух учетных записей, используя:ssh acctA@gatewayServer -t ssh acctB@remotePC

Но когда я использую SCP с ProxyCommand, он запрашивает у меня пароль для acctB. Зачем?

scp -Cp -o "ProxyCommand ssh -q acctA@gateway -W remotePC:22" acctB@remotePC:/opt/logpath/log1.tgz log01.tgz

Заранее спасибо и благодарность всем, кто может дать совет.

1 ответ1

0

Проще всего ввести эти строки в ваш файл .ssh/config :

  Host remotePC
  User          acctB
  HostName      remotePC
  ProxyCommand  ssh AcctA@gatewayServer nc %h %p 2> /dev/null

который вы затем можете использовать для подключения или копирования файлов просто с помощью:

  ssh remotePC
  scp acctB@remotePC:/home/AcctB/somefile .

Чтобы это работало, вам нужна команда netcat (nc), установленная на gatewayServer.

Если вы действительно настаиваете на однострочности (но я никогда не могу вспомнить все эти вещи), то вы идете:

ssh -o "ProxyCommand ssh acctA@gatewayServer nc -w 1 %h 22" acctB@remotePC

и аналогично для scp.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .