c8y(1)

πŸ“¦ version 2.56.1, in nixpkgs unstable

✨ NAME ✨

c8y-remoteaccess-connect-ssh β€” connect to a device via ssh πŸ’»βœ¨ this whole thing lives in the c8y(1) manual, and it’s literally about getting you into a device over ssh without the drama.


🌸 SYNOPSIS 🌸

c8y remoteaccess connect ssh [flags]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so connect to a device via ssh β€” that’s the whole vibe. but there are some details you actually need, bestie.

you can pass extra arguments to the ssh shell using the -- convention: everything after the -- will be passed untouched to the ssh shell. in this mode, the shell will not be interactive, and it will return upon completion of the command. no cap, it’s one-and-done.

want to set the default ssh user to use for all ssh connections for your current c8y session file? run exactly this:

c8y settings update remoteaccess.sshuser root

periodt. that’s how you make it stick πŸ’…


✨ OPTIONS ✨

  • --configuration="" β€” Remote Access Configuration
  • --device=[] β€” Device
  • -h, --help[=false] β€” help for ssh
  • --listen="127.0.0.1:0" β€” Listener address. unix:///run/example.sock
  • -L, --port-forward="" β€” SSH Port-Forwarding option in the format [bind_address:]port:host:hostport. it also accepts a custom short form, [:]. the value is passed to the ssh -L option, so read the ssh man page for more info
  • --preferred-auth="" β€” Set the preferred authentication for the ssh connection. this will add '-o PreferredAuthentications=' to the ssh command
  • --user="" β€” Default ssh user

🧬 OPTIONS INHERITED FROM PARENT COMMANDS 🧬

these are inherited from parent commands β€” not ssh-only, but they come along for the ride, bestie:

  • --abortOnErrors=10 β€” Abort batch when reaching specified number of errors
  • --allowEmptyPipe[=false] β€” Don’t fail when piped input is empty (stdin)
  • --cache[=false] β€” Enable cached responses
  • --cacheBodyPaths=[] β€” Cache should limit hashing of selected paths in the json body. empty indicates all values
  • --cacheTTL="60s" β€” Cache time-to-live (TTL) as a duration, i.e. 60s, 2m
  • -c, --compact[=false] β€” Compact instead of pretty-printed output when using json output. pretty print is the default if output is the terminal
  • --confirm[=false] β€” Prompt for confirmation
  • --confirmText="" β€” Custom confirmation text
  • --currentPage=0 β€” Current page which should be returned
  • --customQueryParam=[] β€” add custom URL query parameters. i.e. --customQueryParam 'withCustomOption=true,myOtherOption=myvalue'
  • --debug[=false] β€” Set very verbose log messages
  • --delay="0ms" β€” delay after each request, i.e. 5ms, 1.2s
  • --delayBefore="0ms" β€” delay before each request, i.e. 5ms, 1.2s
  • --dry[=false] β€” Dry run. don’t send any data to the server
  • --dryFormat="markdown" β€” Dry run output format. i.e. json, dump, markdown or curl
  • --examples[=false] β€” Show examples for the current command
  • --filter=[] β€” Apply a client side filter to response before returning it to the user
  • --flatten[=false] β€” flatten json output by replacing nested json properties with properties where their names are represented by dot notation
  • -f, --force[=false] β€” Do not prompt for confirmation. ignored when using --confirm
  • -H, --header=[] β€” custom headers. i.e. --header "Accept: value, AnotherHeader: myvalue"
  • --includeAll[=false] β€” Include all results by iterating through each page
  • -k, --insecure[=false] β€” Allow insecure server connections when using SSL
  • -l, --logMessage="" β€” Add custom message to the activity log
  • --maxJobs=0 β€” Maximum number of jobs. 0 = unlimited (use with caution! ⚠️)
  • --noAccept[=false] β€” Ignore Accept header: removes the Accept header from requests, however PUT and POST requests will only see the effect
  • --noCache[=false] β€” Force disabling of cached responses (overwrites cache setting)
  • -M, --noColor[=false] β€” Don’t use colors when displaying log entries on the console
  • --noLog[=false] β€” Disables the activity log for the current command
  • --noProgress[=false] β€” Disable progress bars
  • --noProxy[=false] β€” Ignore the proxy settings
  • -n, --nullInput[=false] β€” Don’t read the input (stdin). useful if using in shell for/while loops
  • -o, --output="table" β€” Output format i.e. table, json, csv, csvheader
  • --outputFile="" β€” Save JSON output to file (after select/view)
  • --outputFileRaw="" β€” Save raw response to file (before select/view)
  • --outputTemplate="" β€” jsonnet template to apply to the output
  • -p, --pageSize=5 β€” Maximum results per page
  • --progress[=false] β€” Show progress bar. this will also disable any other verbose output
  • --proxy="" β€” Proxy setting, i.e. http://10.0.0.1:8080
  • -r, --raw[=false] β€” Show raw response. this mode will force output=json and view=off
  • --retries=3 β€” Max number of attempts when a failed http call is encountered
  • --select=[] β€” Comma separated list of properties to return. wildcards and globstar accepted, i.e. --select 'id,name,type,**.serialNumber'
  • --session="" β€” Session configuration
  • --sessionMode="" β€” Override default session mode for a single command which would normally be disabled
  • -P, --sessionPassword="" β€” Override session password
  • -U, --sessionUsername="" β€” Override session username. i.e. peter or t1234/peter (with tenant)
  • --silentExit[=false] β€” Silent status codes do not affect the exit code
  • --silentStatusCodes="" β€” Status codes which will not print out an error message
  • --timeout="600s" β€” Request timeout duration, i.e. 60s, 2m
  • --totalPages=0 β€” Total number of pages to get
  • -v, --verbose[=false] β€” Verbose logging
  • --view="auto" β€” Use views when displaying data on the terminal. disable using --view off
  • --withError[=false] β€” Errors will be printed on stdout instead of stderr
  • --withTotalElements[=false] β€” Request Cumulocity to include the total elements in the response statistics under .statistics.totalElements (introduced in 10.13)
  • -t, --withTotalPages[=false] β€” Request Cumulocity to include the total pages in the response statistics under .statistics.totalPages
  • --workers=1 β€” Number of workers

🌟 EXAMPLE 🌟

  1. $ c8y remoteaccess connect ssh --device 12345 β€” start an interactive SSH session on the device. easy.
  2. $ c8y remoteaccess connect ssh --device 12345 --user admin β€” start an interactive SSH session on the device with a given ssh user. iconic.
  3. $ c8y remoteaccess connect ssh --device 12345 --user admin --preferred-auth password β€” start an interactive SSH session on the device with a given ssh user and force password authentication. slay.
  4. $ c8y remoteaccess connect ssh --device 12345 --user admin -L 1883:127.0.0.1:1883 β€” start an interactive SSH session and configure port-forward by mapping the remote’s 127.0.0.1:1883 to your machine’s port 1883.
  5. $ c8y remoteaccess connect ssh --device 12345 --user admin -L 1883 β€” start an interactive SSH session and configure port-forward: 127.0.0.11883 (remote) => 1883 (local).
  6. $ c8y remoteaccess connect ssh --device 12345 --user admin -L 1884:1883 β€” start an interactive SSH session and configure port-forward: 127.0.0.11883 (remote) => 1884 (local).
  7. $ c8y remoteaccess connect ssh --device 12345 --user admin -- systemctl status β€” use a non-interactive session to execute a single command and print the result.
  8. $ c8y remoteaccess connect ssh --device 12345 --user admin -- "sh -c 'cat /etc/os-release'" β€” use a non-interactive session to execute a custom shell command (notice the surrounding double quotes on the command!).

πŸ‘€ SEE ALSO πŸ‘€

okay that’s the whole c8y-remoteaccess-connect-ssh page, bestie πŸ’– it’s from the c8y(1) manual, dated Jan 1980, and now you’re ready to ssh like a main character. byeee 🫢✨

πŸ“¦ where this page comes from