Я полагаю, I.txt
и J.txt
будут содержать значения outputNumber
? arrI
начнется с индекса 0
, и вам понадобится
for ((i=0; i<outputNumber; i++))
В противном случае вы получите слишком высокий индекс и отсутствующий параметр, как следует из сообщения об ошибке.
Кстати, почему вы назначаете arrI=($valueI)
в каждом цикле? Вы можете сделать это один раз перед циклом.
Вы можете использовать опцию ProxyJump
в ~/.ssh/config
. Изman ssh
:
-J destination
Connect to the target host by first making a ssh connection to the jump host described by destination and then establishing a TCP forwarding to the ultimate destination from there. Multiple jump hops may be specified separated by comma characters. This is a shortcut to specify a ProxyJump configuration directive. Note that configuration directives supplied on the command-line generally apply to the destination host and not any specified jump hosts. Use ~/.ssh/config to specify configuration for jump hosts.
Например, ваш ~/.ssh/config
может выглядеть так:
Host serverA
Port 22
Host serverB
Port 22
ProxyJump serverA
Это сообщит ssh
всегда подключаться к серверу B через serverA, и это будет делаться как для обычного ssh
, так и для scp
. Другими словами, вы можете ввести ssh serverB
или scp serverB:big_file.txt.
, и он будет знать маршрут через ServerA. (Однако вам потребуется локальная копия ключа, необходимого для serverB, если вы используете аутентификацию с открытым ключом.)
Это часто упоминается как "хост перехода" в ssh
. Связанный параметр конфигурации в ~/.ssh/config
— ProxyCommand
.
один из способов — это битинерантное решение, и есть и другие способы.
sshfs
на serverA иscp from local to serverA
ssh tunnel
пожалуйста, следуйте этому для туннелирования и sshfsssh to serverA
sshfs user@serverB:/foldertomount/ ~/mountpoint
scp ~/mountpoint/desiredFile LocalIP:/Path/