Копирование удаленного файла журнала через 2 сеанса SSH без необходимости ввода паролей

Копирование удаленного файла журнала через 2 сеанса SSH без необходимости ввода паролей

Я хочу получить файл журнала с удаленного ПК через gatewayServer на мой локальный ПК без ввода паролей. Сервер шлюза использовал 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

Самое простое — ввести эти строки в свой.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 (нк) команда установлена ​​на gatewayServer.

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

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

и то же самое для scp.

Связанный контент