Support SSH aliases in Dosh client installs
This commit is contained in:
@@ -92,37 +92,36 @@ dosh-client
|
|||||||
Default UDP port: `50000`. This is intentionally inside the common forwarded range
|
Default UDP port: `50000`. This is intentionally inside the common forwarded range
|
||||||
`50000-52000/udp`.
|
`50000-52000/udp`.
|
||||||
|
|
||||||
Put this repo on your Gitea server, then install on each Linux server you want to
|
Install on each Linux server you want to attach to:
|
||||||
attach to:
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://gitea.example.com/you/dosh/raw/branch/main/install.sh \
|
curl -fsSL https://git.palav.dev/Palav/dosh/raw/branch/main/install.sh \
|
||||||
| DOSH_REPO=https://gitea.example.com/you/dosh.git DOSH_PORT=50000 sh -s -- server
|
| DOSH_REPO=https://git.palav.dev/Palav/dosh.git DOSH_PORT=50000 sh -s -- server
|
||||||
```
|
```
|
||||||
|
|
||||||
Install the client on macOS:
|
Install the client on macOS:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
curl -fsSL https://gitea.example.com/you/dosh/raw/branch/main/install.sh \
|
curl -fsSL https://git.palav.dev/Palav/dosh/raw/branch/main/install.sh \
|
||||||
| DOSH_REPO=https://gitea.example.com/you/dosh.git DOSH_SERVER=user@host DOSH_PORT=50000 sh -s -- client
|
| DOSH_REPO=https://git.palav.dev/Palav/dosh.git DOSH_SERVER=palav DOSH_HOST=git.palav.dev DOSH_PORT=50000 sh -s -- client
|
||||||
```
|
```
|
||||||
|
|
||||||
Install the client on Windows PowerShell:
|
Install the client on Windows PowerShell:
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
$env:DOSH_REPO="https://gitea.example.com/you/dosh.git"; $env:DOSH_SERVER="user@host"; $env:DOSH_PORT="50000"; irm https://gitea.example.com/you/dosh/raw/branch/main/install.ps1 | iex
|
$env:DOSH_REPO="https://git.palav.dev/Palav/dosh.git"; $env:DOSH_SERVER="palav"; $env:DOSH_HOST="git.palav.dev"; $env:DOSH_PORT="50000"; irm https://git.palav.dev/Palav/dosh/raw/branch/main/install.ps1 | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
Attach:
|
Attach:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dosh-client user@host
|
dosh palav
|
||||||
```
|
```
|
||||||
|
|
||||||
Use named sessions:
|
Use named sessions:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dosh-client --session work user@host
|
dosh --session work palav
|
||||||
```
|
```
|
||||||
|
|
||||||
Press `Ctrl-]` to detach the current client while leaving the server session alive.
|
Press `Ctrl-]` to detach the current client while leaving the server session alive.
|
||||||
|
|||||||
@@ -454,7 +454,7 @@ Client config: `~/.config/dosh/client.toml`
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
server = "user@example.com"
|
server = "user@example.com"
|
||||||
ssh_port = 22
|
# ssh_port = 22
|
||||||
dosh_port = 50000
|
dosh_port = 50000
|
||||||
default_session = "default"
|
default_session = "default"
|
||||||
reconnect_timeout_secs = 5
|
reconnect_timeout_secs = 5
|
||||||
|
|||||||
+1
-1
@@ -51,7 +51,7 @@ try {
|
|||||||
@"
|
@"
|
||||||
server = "$defaultServer"
|
server = "$defaultServer"
|
||||||
$doshHostLine
|
$doshHostLine
|
||||||
ssh_port = 22
|
# ssh_port = 22
|
||||||
dosh_port = $Port
|
dosh_port = $Port
|
||||||
default_session = "default"
|
default_session = "default"
|
||||||
reconnect_timeout_secs = 5
|
reconnect_timeout_secs = 5
|
||||||
|
|||||||
+1
-1
@@ -183,7 +183,7 @@ if [ "$role" = "client" ] || [ "$role" = "both" ]; then
|
|||||||
cat >"$client_config" <<EOF
|
cat >"$client_config" <<EOF
|
||||||
server = "$default_server"
|
server = "$default_server"
|
||||||
$dosh_host_line
|
$dosh_host_line
|
||||||
ssh_port = 22
|
# ssh_port = 22
|
||||||
dosh_port = $port
|
dosh_port = $port
|
||||||
default_session = "default"
|
default_session = "default"
|
||||||
reconnect_timeout_secs = 5
|
reconnect_timeout_secs = 5
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ async fn main() -> Result<()> {
|
|||||||
"read-write"
|
"read-write"
|
||||||
}
|
}
|
||||||
.to_string();
|
.to_string();
|
||||||
let ssh_port = args.ssh_port.unwrap_or(config.ssh_port);
|
let ssh_port = args.ssh_port.or(config.ssh_port);
|
||||||
let dosh_port = args.dosh_port.unwrap_or(config.dosh_port);
|
let dosh_port = args.dosh_port.unwrap_or(config.dosh_port);
|
||||||
let cache_path = cache_path(&config.credential_cache, &server, &session, &mode);
|
let cache_path = cache_path(&config.credential_cache, &server, &session, &mode);
|
||||||
let (cols, rows) = size().unwrap_or((80, 24));
|
let (cols, rows) = size().unwrap_or((80, 24));
|
||||||
@@ -232,7 +232,7 @@ fn local_bootstrap(
|
|||||||
|
|
||||||
fn ssh_bootstrap(
|
fn ssh_bootstrap(
|
||||||
server: &str,
|
server: &str,
|
||||||
ssh_port: u16,
|
ssh_port: Option<u16>,
|
||||||
ssh_auth_command: &str,
|
ssh_auth_command: &str,
|
||||||
ssh_key: Option<&std::path::Path>,
|
ssh_key: Option<&std::path::Path>,
|
||||||
ssh_known_hosts: Option<&std::path::Path>,
|
ssh_known_hosts: Option<&std::path::Path>,
|
||||||
@@ -246,7 +246,10 @@ fn ssh_bootstrap(
|
|||||||
let nonce_b64 = URL_SAFE_NO_PAD.encode(nonce);
|
let nonce_b64 = URL_SAFE_NO_PAD.encode(nonce);
|
||||||
let size = format!("{cols}x{rows}");
|
let size = format!("{cols}x{rows}");
|
||||||
let mut command = Command::new("ssh");
|
let mut command = Command::new("ssh");
|
||||||
command.arg("-p").arg(ssh_port.to_string()).arg("-T");
|
if let Some(ssh_port) = ssh_port {
|
||||||
|
command.arg("-p").arg(ssh_port.to_string());
|
||||||
|
}
|
||||||
|
command.arg("-T");
|
||||||
if let Some(key) = ssh_key {
|
if let Some(key) = ssh_key {
|
||||||
command.arg("-i").arg(key);
|
command.arg("-i").arg(key);
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -46,7 +46,7 @@ impl Default for ServerConfig {
|
|||||||
pub struct ClientConfig {
|
pub struct ClientConfig {
|
||||||
pub server: String,
|
pub server: String,
|
||||||
pub dosh_host: Option<String>,
|
pub dosh_host: Option<String>,
|
||||||
pub ssh_port: u16,
|
pub ssh_port: Option<u16>,
|
||||||
pub dosh_port: u16,
|
pub dosh_port: u16,
|
||||||
pub default_session: String,
|
pub default_session: String,
|
||||||
pub reconnect_timeout_secs: u64,
|
pub reconnect_timeout_secs: u64,
|
||||||
@@ -60,7 +60,7 @@ impl Default for ClientConfig {
|
|||||||
Self {
|
Self {
|
||||||
server: "user@example.com".to_string(),
|
server: "user@example.com".to_string(),
|
||||||
dosh_host: None,
|
dosh_host: None,
|
||||||
ssh_port: 22,
|
ssh_port: None,
|
||||||
dosh_port: 50000,
|
dosh_port: 50000,
|
||||||
default_session: "default".to_string(),
|
default_session: "default".to_string(),
|
||||||
reconnect_timeout_secs: 5,
|
reconnect_timeout_secs: 5,
|
||||||
|
|||||||
Reference in New Issue
Block a user