This procedure demonstrates how to generate a [[The Skyhook Configuration File|Skyhook configuration file]] with randomized user names, passwords, and API paths. # Assumptions 1. The operator has a Skyhook binary downloaded and accessible. # Procedure 1. Run the following command: ```bash skyhook server generate-config -r 20 ``` 2. Review the configuration file and update fields according to operator needs. >[!TIP]- Tips >- The above command results in randomized URIs with a minimum length of 20 to avoid fingerprinting. >- `link_fqdns` is a list of IP addresses or FQDN values the server is accessible from. > - The [[Admin Server|admin server's]] web interface will generate links matching the randomized URLs. >- It's advisable to enhance any randomly generated passwords. >- The `file_server_config.obfuscators` field can remain `[]` until the admin server is accessible to facilitate more complex configuration. >- The `file_server_config.upload_options.registrants_file` will be created at runtime. # Example Output >[!WARNING] >Don't use this configuration! It's likely to become stale as code changes occur. ```yml tls_config: cert_path: "" key_path: "" admin_server_config: additional_cors_urls: - '*' interface: lo port: 65535 file_server_config: additional_cors_urls: - '*' interface: eth0 port: 443 root_directory: webroot obfuscators: [] upload_options: registrants_file: skyhook_upload_registrants.json max_upload_duration: 24 routes: api: logout: /mode/jon/army/coin/large download: /kenneth/lynwood/hilario upload: /edged/noah/louie/ernest landing_page: algos.wasm: /cocky/slav/hue/mixed/usual.wasm asset-manifest.json: /scant/minty/organ/baggy.json bootstrap.min.css: /nuts/feral/fort/percy/herbert.css chunk.js: /shed/kirk/randy/ghoul/lazy.js chunk.js.map: /shed/kirk/randy/ghoul/lazy.js.map favicon.ico: /pert/bash/elite/seven/hefty.ico index.html: /ivory/bulgy/smile/homey.html logo192.png: /terrell/wake/bulge/chug.png logo512.png: /epic/brendon/dusty/dusty.png main.css: /sixty/bound/awash/norbert.css main.css.map: /sixty/bound/awash/norbert.css.map main.js: /oval/east/pacer/old/motor.js main.js.LICENSE.txt: /baggy/famed/luke/scaly/andrea.txt main.js.map: /oval/east/pacer/old/motor.js.map manifest.json: /tacky/waylon/comic/lurid.json react-bootstrap.min.js: /rushy/much/corny/baggy/fluid.js react-dom.production.min.js: /jackson/other/solo/left.js react.production.min.js: /dated/tough/rainy/nolan.js robots.txt: /mad/gawk/chalk/boozy/polar.txt wasm_exec.js: /fumed/root/maurice/nifty.js wasm_helpers.js: /shot/sent/bowed/darryl/size.js wasm_vars.js: /homey/worn/rueben/motor.js wasm_worker.js: /norbert/model/going/rob.js encrypted_loader: auto_html: /blond/curt/achy/gruff/wary.html html: /lofty/dallas/young/wish.html js: /fatal/chewy/magic/apple.js encrypted_loader: key: barton-gregg uri_param: doughnewshang root_element_id: asa-husky-dent link_fqdns: - your.fqdn.here range_header_options: name: foresttadbriskwalton range_prefix: bytes users: - username: nubby-marvin password: broke dannie beau rogelio is_admin: true token: DRTA3CvmM7 - username: liar-waste password: dwayne fabian still wilton is_admin: false token: DICOfhpu0J auth_config: header: name: Authorization scheme: Bearer jwt: realm: sh field_names: username: id admin: ad config: c signing_key: 65495f23-f275-41a3-9ad4-96f8c435ae8d ```