
Я хочу получить файл журнала с удаленного ПК через 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.