You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -87,7 +87,7 @@ The configuration file is an array, and each item represents one server:
87
87
-`name`: Connection name, must be unique
88
88
-`host`: SSH host address
89
89
-`username`: SSH username
90
-
-`password` / `privateKey`: Authentication method; exactly one of the two must be configured
90
+
-`password` / `passwordRef` / `privateKey`: Authentication method; keep exactly one authentication type among password, password reference, and private key
91
91
-`port`: SSH port, defaults to `22`
92
92
-`passphrase`: Private key passphrase, only used with `privateKey`
93
93
-`pty`: Whether to allocate a pseudo-terminal, defaults to `false`; it can also be enabled per command with `exec --pty`
@@ -99,6 +99,8 @@ The configuration file is an array, and each item represents one server:
99
99
100
100
See the full example in [example.config.json](example.config.json). Store real connection information in `~/.agent-ssh-cli/config.json`.
101
101
102
+
To reduce password leakage from configuration files, password authentication is passively encrypted the first time that server is used: after you write a plaintext `password`, the next `exec`, `upload`, or `download` for that server encrypts the password into `secrets.json` under the config directory, creates a local `secret.key`, then writes the config back with an empty `password` and a `passwordRef`. Later runs decrypt through `passwordRef`. To change the password, replace the empty `password` with the new plaintext password; the next connection overwrites the old encrypted value.
0 commit comments