@@ -28,6 +28,8 @@ def create_port_forwards(ecs_manifest, aws_region, aws_account, parsed_container
2828 for container in containers :
2929 container_name = container .name
3030 container_ports = container .port_forward
31+ if ecs_manifest .copy_method == "sftp" :
32+ container_ports .append (f"{ container .sftp_config .port } :{ container .sftp_config .port } " )
3133 for container_port in container_ports :
3234 from_port = container_port .split (":" )[0 ]
3335 to_port = container_port .split (":" )[1 ]
@@ -115,13 +117,16 @@ def run_sftp_sync_thread(ecs_manifest, aws_region, aws_account, parsed_container
115117 containers = ecs_manifest .task_definition .containers
116118 for container in containers :
117119 container_name = container .name
120+ port = container .sftp_config .port
121+ username = container .sftp_config .user
122+ password = container .sftp_config .password
118123 target = parsed_containers .get (container_name )["ssm_target" ]
119124 if len (container .volumes ) > 0 :
120125 observer = Observer ()
121126 for volume in container .volumes :
122127 _from , _ = volume .split (":" )
123128 event_handler = SynchronizeSFTPEventHandler (
124- target , aws_region , aws_account , volume , container .volumes_excludes
129+ target , aws_region , aws_account , volume , container .volumes_excludes , port , username , password
125130 )
126131 event_handlers .append (event_handler )
127132 observer .schedule (event_handler , _from , recursive = True )
@@ -314,7 +319,7 @@ def install_netcat_command(target, aws_region, aws_account) -> None:
314319 )
315320
316321
317- def install_sshd_client (target , aws_region , aws_account , auto_install_override ) -> None :
322+ def install_sshd_client (target , aws_region , aws_account , auto_install_override , port , user , password ) -> None :
318323 DEBUG_EASYECS = os .environ .get ("DEBUG_EASYECS" , None )
319324 client = boto3 .client ("ssm" )
320325 if len (auto_install_override ) > 0 :
@@ -324,25 +329,21 @@ def install_sshd_client(target, aws_region, aws_account, auto_install_override)
324329 print (f" - { ' ' .join (cmd )} " )
325330 commands_server = auto_install_override
326331 else :
327- if DEBUG_EASYECS :
328- print (f"{ Color .YELLOW } Using default auto install commands:{ Color .END } " )
329- print (" - apt update" )
330- print (" - apt install -y openssh-server" )
331- print (" - echo 'root:root' | chpasswd" )
332- print (" - mkdir /run/sshd" )
333- print (' - echo "PermitRootLogin yes" >> /etc/ssh/sshd_config' )
334- print (' - echo "Port 2312" >> /etc/ssh/sshd_config' )
335332 commands_server = [
336333 ["apt update" ],
337334 [
338335 "/bin/bash -c 'DEBIAN_FRONTEND=noninteractive apt install -y"
339336 " openssh-server'"
340337 ],
341- ["/bin/bash -c 'echo 'root:root ' | chpasswd'" ],
338+ [f "/bin/bash -c 'echo '{ user } : { password } ' | chpasswd'" ],
342339 ["mkdir /run/sshd" ],
343340 ["/bin/bash -c 'echo \" PermitRootLogin yes\" >> /etc/ssh/sshd_config'" ],
344- ["/bin/bash -c 'echo \" Port 2312 \" >> /etc/ssh/sshd_config'" ],
341+ [f "/bin/bash -c 'echo \" Port { port } \" >> /etc/ssh/sshd_config'" ],
345342 ]
343+ if DEBUG_EASYECS :
344+ print (f"{ Color .YELLOW } Using default auto install commands:{ Color .END } " )
345+ for cmd in commands_server :
346+ print (f" - { ' ' .join (cmd )} " )
346347 for command_server in commands_server :
347348 parameters_nc_server = {"command" : command_server }
348349 ssm_nc_server = client .start_session (
@@ -446,8 +447,9 @@ def run_sftp_commands(
446447 else :
447448 if not has_sshd and auto_install_sftp :
448449 install_sshd_client (
449- ssm_target , aws_region , aws_account , auto_install_override
450+ ssm_target , aws_region , aws_account , auto_install_override , container . sftp_config . port , container . sftp_config . user , container . sftp_config . password
450451 )
452+ time .sleep (2 ) # Wait a bit for sshd to be ready
451453 run_sshd_command (
452454 parsed_containers ,
453455 aws_region ,
0 commit comments