π Day 13 β SSH and Networking Flow Between VMs
π― Goal
Understand and practice real network communication between two Linux machines by chaining together SSH, SCP, and HTTP file transfers, and reason clearly about where each protocol fits in the networking flow.
β What I Did
Network Discovery
-
Identified the correct network interface on Ubuntu using:
ip a -
Learned to ignore non-relevant interfaces:
-
lo(loopback) -
docker0(internal container bridge)
-
-
Correctly selected the active interface:
enp0s5β10.211.55.5/24
-
Recognized the
10.211.x.xrange as Parallels NAT networking, confirming VM-to-VM reachability
Connectivity Verification
-
Verified Layer-3 connectivity from Kali using:
ping 10.211.55.5 -
Confirmed that basic IP networking was functional before attempting higher-level protocols
Secure Remote Access (SSH)
-
Connected from Kali β Ubuntu using:
ssh parallels@10.211.55.5 -
Verified successful authentication by observing the remote Ubuntu shell prompt
-
Reinforced that SSH provides an encrypted remote control channel, not just a login
Secure File Transfer (SCP)
-
Created a test file on Kali:
echo "hello from kali" > testfile.txt -
Transferred it securely to Ubuntu using:
scp testfile.txt parallels@10.211.55.5:/home/parallels/ -
Verified file integrity and contents on Ubuntu
Application-Layer File Serving (HTTP)
-
Served files from Ubuntu using Pythonβs built-in HTTP server:
python3 -m http.server 8000 -
Understood that this exposes the current directory over unencrypted HTTP
-
Intentionally left the server running only for the duration of the test
Client-Side Retrieval (wget)
-
Downloaded the file from Kali using:
wget http://10.211.55.5:8000/testfile.txt -
Verified that the file contents matched the original
Cleanup
-
Properly stopped the HTTP server using
Ctrl + C -
Reinforced the habit of never leaving temporary services running
β What Worked
-
Identifying the correct interface made the rest of the exercise straightforward
-
Verifying connectivity with
pingprevented wasted debugging time -
SSH and SCP worked reliably once IP-level networking was confirmed
-
Pythonβs HTTP server was extremely effective for short-lived file transfers
-
The full Kali β Ubuntu β Kali round trip clarified protocol layering
β What Didnβt
-
Initial temptation to overthink DNS instead of starting with raw IP connectivity
-
Having to stay disciplined about stopping temporary services
π§ Key Takeaways
-
Networking is layered: IP first, then transport, then application protocols
-
SSH encrypts everything after connection establishment, including file transfers
-
SCP is simply SSH applied to file movement
-
HTTP is easy to stand up, but dangerous if exposed without intent or controls
-
Correct interface selection is a foundational troubleshooting skill
β Questions
-
When is SCP preferable to HTTP-based transfers in real environments?
-
How would this flow change across routed or firewalled networks?
-
What visibility do defenders retain once traffic is encrypted?
