From 64564a54d48ecf00fae6b976cd400e68408e7c7d Mon Sep 17 00:00:00 2001 From: djwisdom Date: Sat, 2 Apr 2022 09:47:22 +0800 Subject: [PATCH] Base: Add to documentation 4th method of transferring files Update documentation with focus on enabling openssh in SerenityOS and on the proper usage of sftp client to transfer files. --- Documentation/TransferringFiles.md | 59 ++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/Documentation/TransferringFiles.md b/Documentation/TransferringFiles.md index b3ff5df173..aadc0ddf27 100644 --- a/Documentation/TransferringFiles.md +++ b/Documentation/TransferringFiles.md @@ -30,3 +30,62 @@ sudo mount -t ext2 _disk_image mnt Some archiving tools, like [7-Zip](https://www.7-zip.org/), are capable of directly opening ext2 images like Serenity's `_disk_image`. With these, you can open the disk image like any other archive and extract the files you need. For WSL users: If you have the image on your native WSL drive (recommended), this drive can be opened in Explorer by manually opening `\\wsl$` (not visible in the Network tab!) and then the "network share" corresponding to your distro. + +## Method 4: Enable OpenSSH on host and use sftp client on SerenityOS + +- Setup OpenSSH server on your host. +For windows: Google is your friend (https://docs.microsoft.com/en-us/windows-server/administration/openssh/openssh_install_firstuse) +For linux: Google is your friend. +- Ensure that you already have a working SerenityOS working build. +```console +$ Meta/serenity.sh rebuild-world +``` +- To enable OpenSSH package from SerenityOS: (initial directory is SerenityOS ROOT_DIR) + +```console +cd Ports +cd openssh +./package.sh +cd ../.. +Meta/serenity.run +``` +- From within SerenityOS, check that you have a working sftp app: + +```console +courage:~ $ sftp +``` +The expected response will be: + +```console +courage:~ $ sftp +usage: sftp [-46aCfNpqrv] [-B buffer_size] [-b batchfile] [-c cipher] + [-D sftp_server_path] [-F ssh_config] [-i identity_file] + [-J destination] [-l limit] [-o ssh_option] [-P port] + [-R num_requests] [-S program] [-s subsystem | sftp_server] + destination +``` +- Assume that you have a working OpenSSH server as mentioned earlier, with an IP address of 192.168.0.11. +- Assume that you have a valid user on that host with account name user1. +- Assume that you are currently inside the folder from which you want to transfer the file(s) from. +- Local + User: anon +- Remote + User: user1 + IP Address: 192.168.0.11 +- Connect to remote server via sftp + +```console +courage:~ $ sftp user1@192.168.0.11 +The authenticity of host '(192.168.0.11)' can't be established. +ECDSA key finger print is SHA256:Iav!m/E0cHJBnzSk0hJEZnBZ2F3LBL4wxhyv4nrfPtU. +Are you sure you want to continue connecting (yes/no/[fingerprint])? yes + +user1@'s password: +Connected to 192.168.0.11 + +``` +- By this time, you have successfully connected and logged on to the remote host. +- You can get more information by typing ` help `. +- The most often used (simplified) sftp commands are ` ls `, ` cd `, ` put [filename] `, ` get [filename] `, and ` quit `. I said simplified since the actual commands have many more options. +- Be aware that there will be a time you would think that nothing is happening since the cursor just stares back at you. It is always waiting for your next instruction. Typing ` quit ` or ` bye ` will close the program. +- Congratulations. Pat yourself at the back.