Просто дай мне понять это правильно:
- localIP хочет файлы в / home / localuser / Desktop / MessageFolder /
- требуемые файлы находятся на IP2 в / var / log / message *
- Единственный способ получить доступ к IP2 с IP1
Вам нужно будет использовать ssh / scp с использованием ключей вместо паролей, как описано в https://wiki.archlinux.org/index.php/SSH_keys . Я бы также посоветовал не использовать пользователя root для этой основной операции.
Предполагая, что эти предположения верны, вы можете использовать возможность туннелирования SSH, чтобы машина localIP могла подключиться по ssh / scp к 127.0.0.1:SomeUnusedPort, чтобы добраться до IP2. Основная сложность заключается в том, чтобы узнать, когда следует отключить локальную IP-машину от IP1-машины.
Это быстрый блок кода, чтобы сделать то, что я думаю. Имейте в виду, я не проверял это вообще.
IP1=192.168.10.10 IP2=192.168.10.9 SomeUnusedPortOnLocalIP=2209 ssh -L $SomeUnusedPortOnLocalIP $IP2:22 root@$IP1 "while [ ! -f /tmp/disconLocalIP.now ]; do sleep 2; done; rm /tmp/disconLocalIP.now " & # connects to IP1 establishing an ssh tunnel between localIP and IP2 # the loop testing for the existence of a file to let it know when to disconnect # the & symbol lets the command run in the background and the script to continue with it still running # wait for the connection to actually establish fully before proceeding. sleep 10 # connect to port tunnel on localIP to get files from IP2 scp -P $SomeUnusedPortOnLocalIP root@$127.0.0.1:/var/log/message* /home/localuser/Desktop/MessageFolder/ scp -P $SomeUnusedPortOnLocalIP root@$127.0.0.1:/var/log/log* /home/localuser/Desktop/OtherLogs/ # put file on IP1 to tell loop to end and exit previous ssh session ssh root@$IP1 "touch /tmp/disconLocalIP.now"