Comments (4)
My confusion stems from the following. SSH manpage documents that options can only be specified before the server name:
ssh [-tons of options here] destination [command [argument ...]]
I had a look at source hcloud server ssh
code and indeed it appends the arguments to after the server name, and this I have confirmed by looking at process table:
hcloud server ssh <name> -v bash
runs
ssh -l root -p <ip> -v bash
which, I supposed, would try to run command -v
on the remote server.
But apparently and unexpectedly OpenSSH client accepts options even after the server name, only --
stops its option processing. TIL, after 25 years of using SSH! Worth documenting, yes.
from cli.
You should already be able to just do this:
$ hcloud server ssh myserver -v
from cli.
Aha, and the command is delimited by --
, I see, nice.
Should it be documented then?
from cli.
Aha, and the command is delimited by
--
, I see, nice.
Yes, this is the default behavior as described in the posix standard:
Guideline 10:
The first -- argument that is not an option-argument should be accepted as a delimiter indicating the end of options. Any following arguments should be treated as operands, even if they begin with the '-' character.
And it is implemented by spf13/cobra, the CLI framework we use.
Should it be documented then?
Since this behavior is not unique to the hcloud CLI and we don't even implement it ourselves, I don't know if documenting it would make sense. This is how the documentation looks like right now:
Usage:
hcloud server ssh [options] <server> [command...]
Flags:
-h, --help help for ssh
--ipv6 Establish SSH connection to IPv6 address
-p, --port int Port for SSH connection (default 22)
-u, --user string Username for SSH connection (default "root")
I agree that it is not instantly apparent that you can pass flags to the ssh
binary using the [command...]
.
Maybe something like this is better:
Usage:
hcloud server ssh [options] <server> [ssh options] [command [argument...]]
from cli.
Related Issues (20)
- Add the project name to the hcloud cmd "all" HOT 2
- Improve error message when required argument is not set HOT 2
- Primary IP assignee ID is null in API response but 0 in JSON output HOT 1
- Update Loadbalancer SSL Certificate HOT 4
- Improve commands help messages
- Please enable yaml output for server reset-password HOT 6
- Adding firewall rule fails with version v1.43.0 HOT 3
- enabling rescue mode using CLI HOT 1
- alias lb for load-balancer HOT 2
- hcloud server ssh <server> [command] is broken HOT 1
- `--port` option is missing from usage of the `firewall {add,delete}-rule` commands HOT 2
- Allow to set health check options in `hcloud load-balancer add-service`
- Example firewall rules json doesn't work HOT 1
- Load-Balancer: Assign Targets using labels does not seem to work HOT 2
- [Design Doc] feat: new configuration system + config subcommand
- bug: debug log is truncated if it already exists
- Progress animation is rendered on a new line when the terminal is too small HOT 1
- feat: Limit parallel deletes HOT 1
- Deleting protected resources fails quietly HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cli.