Skip to content

Releases: Vallic/MorphGate

MorphGate Dev 0.2.1-63

Pre-release

Choose a tag to compare

@github-actions github-actions released this 23 Oct 06:55
e05f0aa

Development build 0.2.1-63 from develop at e05f0aa.

  • The first screen offers New vault, New account and Sign in. New account creates your vault and
    your sync account in one go.
  • An invite to a team opened before you've set MorphGate up shows on its first screen, with your
    address filled in, and once your account exists Teams opens with the invite. You can also paste
    an invite there (Joining a team?). An invite opened while sync is off opens as soon as you turn
    sync on: no need to open the link again.
  • A new vault no longer asks at once whether to turn on sync (the first screen offers New account
    and Sign in). If sync is still off a week later, MorphGate asks once.
  • MorphGate can suggest a strong master password: five random words, wherever you set one.
  • With saved hosts, MorphGate opens on your Hosts page, with Quick connect beside New host.
  • Hosts, groups, keys, snippets, tunnels and VPNs are tables you can search and filter, each row's
    actions shown as you point at it. Hosts show whether they're connected instead of a letter, each
    group says what it gives its hosts (which sit indented under it), and the sidebar lists your
    open sessions first. Keys, identities and host CAs are tabs of the Keys page. Session logs can
    be searched and narrowed to a vault, group or host.
  • A team's page starts with what needs you (a member to confirm, a device to approve, a key to
    rotate), then has tabs for its members, vaults, your SSH keys, settings and activity. New vault
    and the plan sit beside Invite people, and you can invite several people at once. Teams says
    per team what's waiting for you.
  • When a team requires two-step verification and your account doesn't have it, MorphGate says so
    and takes you to turning it on, instead of the team's vaults silently not appearing.
  • Sync: every change now carries a version inside its signed envelope, and deletions are signed,
    so a sync server can't give a device an older copy of an item than one it has seen. Older
    versions of the app keep syncing alongside this one.
  • Install and restart waits for an update check that's still running, so it installs the update
    that check found.
  • Feeds: hosts and snippets from an address your team publishes (Hosts → Add from… → Feed URL…),
    read with a token. They stay in step with it on their own, every 15 minutes; your renames, keys,
    tags and notes stay yours. A feed can list each server's host key, so new servers connect
    without asking you to trust them, and a server with another key is refused. Its snippets are
    read-only, and when the feed changes one, Run and Paste show you the new commands first.
  • Two devices refreshing the same cloud source at once no longer make duplicate hosts or
    "(conflict)" copies.
  • About links to the documentation (morphgate.com/docs) and the source code on GitHub.
  • A vault saved by a newer MorphGate (after going back to an older version) no longer stops the app
    from opening: its window says to install the latest version, and the vault is left as it is.
  • Copy buttons (a public key, the recovery key, an invite code, host key details) fall back to
    another way of copying when the system refuses the first, and say "Couldn't copy" instead of
    doing nothing when neither works.

MorphGate 0.2.1

Choose a tag to compare

@github-actions github-actions released this 22 Oct 19:43
d7e9760
  • The first screen offers New vault, New account and Sign in. New account creates your vault and
    your sync account in one go.
  • An invite to a team opened before you've set MorphGate up shows on its first screen, with your
    address filled in, and once your account exists Teams opens with the invite. You can also paste
    an invite there (Joining a team?). An invite opened while sync is off opens as soon as you turn
    sync on: no need to open the link again.
  • A new vault no longer asks at once whether to turn on sync (the first screen offers New account
    and Sign in). If sync is still off a week later, MorphGate asks once.
  • MorphGate can suggest a strong master password: five random words, wherever you set one.
  • With saved hosts, MorphGate opens on your Hosts page, with Quick connect beside New host.
  • Hosts, groups, keys, snippets, tunnels and VPNs are tables you can search and filter, each row's
    actions shown as you point at it. Hosts show whether they're connected instead of a letter, each
    group says what it gives its hosts (which sit indented under it), and the sidebar lists your
    open sessions first. Keys, identities and host CAs are tabs of the Keys page. Session logs can
    be searched and narrowed to a vault, group or host.
  • A team's page starts with what needs you (a member to confirm, a device to approve, a key to
    rotate), then has tabs for its members, vaults, your SSH keys, settings and activity. New vault
    and the plan sit beside Invite people, and you can invite several people at once. Teams says
    per team what's waiting for you.
  • When a team requires two-step verification and your account doesn't have it, MorphGate says so
    and takes you to turning it on, instead of the team's vaults silently not appearing.
  • Sync: every change now carries a version inside its signed envelope, and deletions are signed,
    so a sync server can't give a device an older copy of an item than one it has seen. Older
    versions of the app keep syncing alongside this one.
  • Install and restart waits for an update check that's still running, so it installs the update
    that check found.
  • Feeds: hosts and snippets from an address your team publishes (Hosts → Add from… → Feed URL…),
    read with a token. They stay in step with it on their own, every 15 minutes; your renames, keys,
    tags and notes stay yours. A feed can list each server's host key, so new servers connect
    without asking you to trust them, and a server with another key is refused. Its snippets are
    read-only, and when the feed changes one, Run and Paste show you the new commands first.
  • Two devices refreshing the same cloud source at once no longer make duplicate hosts or
    "(conflict)" copies.
  • About links to the documentation (morphgate.com/docs) and the source code on GitHub.
  • Copy buttons (a public key, the recovery key, an invite code, host key details) fall back to
    another way of copying when the system refuses the first, and say "Couldn't copy" instead of
    doing nothing when neither works.

MorphGate 0.2.0

Choose a tag to compare

@github-actions github-actions released this 20 Oct 23:23
d158a23

First release.

  • Signing a device out from another one (Sync → Devices → Sign out) now clears it: the next time
    it connects, MorphGate removes its vaults, keys and settings there and goes back to its first
    screen, saying why. Signing in again brings everything back from the account. Disconnecting a
    device from itself asks whether to remove everything or keep a copy that no longer syncs.
  • About → Open-source licenses lists the components each build includes, with their license
    texts.
  • When you're no longer in a team (you left on another device, an admin removed you, or it was
    deleted), your devices say so once as its vaults leave them. Moving a host into a team's vault
    says it is the team's from then on.
  • Deleting your sync account on one device (or the website) turns sync off on the others the next
    time they connect: they keep your own vault, let go of team vaults, and say why.
  • If a team seat was what kept your own vault syncing and you leave the team (or it ends), your
    vault keeps syncing for a grace period; Sync shows until when. A plan's grace period shows its
    end date too.
  • SSH terminals with saved hosts, keys (generated or imported) and snippets; jump hosts; local,
    remote and SOCKS port forwarding.
  • Import hosts from OpenSSH's configuration (Hosts → Import…): every Host in ~/.ssh/config
    (and the files it includes) becomes a host, with the private keys its IdentityFiles name
    copied into the vault (or the vault's copy reused) and ProxyJump as its jump hosts. A
    preview shows what comes in, what the vault has already, and what ssh does that isn't
    imported (ProxyCommand, forwards, Match blocks). The file isn't changed. IdentityAgent
    picks the host's agent, a public key as IdentityFile the one agent key it offers, and
    ForwardAgent turns on forwarding.
  • Import from other SSH clients too (Hosts → Import…): PuTTY's saved sessions (from the registry
    on Windows, ~/.putty/sessions elsewhere, or a .reg file exported from PuTTY), a CSV file
    (Termius' import template, or another manager's export: columns are found by their headers)
    and Royal TS documents (.rtsz, .rtsx). Groups, tags and notes come along; a PuTTY SSH proxy
    or a Royal TS credential's user and key too. Royal TS keeps its passwords encrypted, so those
    hosts ask for theirs.
  • Snippets from a CSV file (Snippets → Import…): a Name, a Command and Tags column, in any order;
    a command of several lines stays one. "Download an example" saves one to start from. A snippet
    the vault already has by that name starts unticked; ticked, the file's replaces it.
  • Importing a key or a certificate takes the file from a "Choose file…" dialog instead of a typed
    path, so it works on phones too; so does a VPN's .conf or .ovpn (with the files it refers to,
    chosen together with it).
  • Sync's device list shows each device as it is now: phones as Android or iOS with their model,
    and the version each one runs, updated as it syncs rather than only when it signed in.
  • Android: the keyboard no longer covers the extra-key row and the bottom of the terminal (the
    page ends where the keyboard begins), and the extra keys leave the keyboard as it is instead of
    bringing it up.
  • A snippet sent right after the Esc key runs as written: the shell no longer takes its first
    characters for the key Esc modifies ([200~df -h~).
  • Vallic Cloud (Hosts → Vallic Cloud…): sign in with your Vallic account (a code you approve in
    the browser), and its environments become hosts, one per environment, machine and worker,
    grouped by project, signing in the way vallic ssh does. A refresh keeps them in step: what
    the platform decides follows it, your renames, keys, schemes, tags and notes stay, and a host
    it no longer lists is marked in red, not deleted. Choose the key its hosts use and add it to
    your Vallic account from the same page. Each device signs in itself; the hosts sync like any
    other. A Vallic Cloud session is a shell in your app's container, not root on a machine, with
    no SFTP or forwarding: these hosts offer no Files, tunnels or agent forwarding. Who gets in is
    decided by Vallic accounts, so offboarding and key replacement leave these hosts to the Vallic
    console and say so.
  • AWS, Google Cloud, Azure, Hetzner Cloud and DigitalOcean (Hosts → Clouds…): their virtual
    machines as hosts, kept in step like Vallic Cloud's, listed with the provider's own CLI (aws,
    gcloud, az, hcloud, doctl) as this
    computer has it signed in: MorphGate keeps no cloud credentials. Choose the regions, projects
    or subscriptions, public addresses or private ones through a jump host, who to log in as where a
    machine doesn't say (Azure does; a morphgate:user tag or morphgate-user label does too),
    and a tag to group by. An EC2 key pair's name picks the vault's key of that name. A stopped
    machine keeps its last address and says it's stopped. Desktop only: phones have no CLIs.
    Machines without an address can be reached through AWS Session Manager, an EC2 Instance
    Connect Endpoint or Google's IAP: the source's choice, and MorphGate runs the CLI for each
    connection. The command is built on the device from the machine's ids (checked to be ids),
    never taken from the vault.
  • Phones mark hosts they can't connect to as desktop only, and their sheet says why: ones that
    connect through a command on the computer (a proxy command, or a cloud's CLI for Session
    Manager, Instance Connect or IAP), or sign in with an SSH agent (phones have none).
  • Saving a VPN closes its editor, back to the list that shows it.
  • Select several hosts, groups, keys and identities, snippets, tunnels or VPNs on their page
    (Select) to delete them at once, put hosts in a group, or move them to another vault. A jump
    host goes with the hosts behind it; anything something else still uses is kept, and said why.
  • A host can have a login command, run with a terminal instead of the login shell (as
    ssh -t host <command>), and be reached through its jump host by a command the jump host runs
    (nc %h %p, or a platform's own), for jump hosts that hand a connection on instead of
    forwarding it. Where that command refuses, the error shows what it said.
  • A host can be reached by a command on this computer (Connect via → A command on this
    computer), as ssh's ProxyCommand: AWS Session Manager, EC2 Instance Connect Endpoints,
    Google's IAP tunnel, nc through a proxy. ~/.ssh/config imports bring ProxyCommand along.
    A vault syncs and is shared, so a command runs only on devices that allowed it: one typed or
    imported on a device is allowed there; one that came with the vault waits for "Allow on this
    device" in the host's editor, which shows it first. Host names and users given to a command
    (%h, %r) must be plain words.
  • A key's certificate can renew itself (the key's page → Certificate → Renew with a command…):
    a command run on this computer before connecting when the certificate is missing or runs out
    within 5 minutes, and on "Renew now". It gets the public key (on its input, or as a file: %k)
    and prints the certificate, or leaves it in a file: vault write -field=signed_key ssh/sign/<role> public_key=-, step ssh certificate --sign, ssh-keygen -s. Like a proxy
    command, one that came with the vault runs only once this device allowed it.
  • Host CAs (Keys → New host CA): hosts whose keys a certificate authority signed are trusted
    without the first-connect prompt, instead of each key being pinned: what step-ca, HashiCorp
    Vault or Teleport issue, or ssh-keygen -h -s. Paste the CA's key (or an @cert-authority
    line) and the hosts it vouches for (*.example.com); in a team's vault it covers every member.
    @cert-authority lines in ~/.ssh/known_hosts are trusted too. A certificate that doesn't
    hold up (another CA, another host, expired) is refused; the route bar says which CA vouched.
  • OpenSSH certificates: a key can have a certificate from a certificate authority (step-ca,
    HashiCorp Vault, Teleport, or your own ssh-keygen -s), added from its -cert.pub file or
    pasted. Signing in presents it, so servers that trust the CA take the key without it being in
    authorized_keys. The key's page shows who it signs in as, the CA, and how long it's valid,
    with a warning in its last day and once it has expired. Certificates an SSH agent holds are
    presented too (step ssh login, tsh login put one there), and imports bring a key's
    certificate along (CertificateFile, <key>-cert.pub, PuTTY's and Royal TS's detached
    certificate).
  • PuTTY keys (.ppk, versions 2 and 3, encrypted or not) can be imported (Keys, and with PuTTY
    sessions); the vault keeps them as OpenSSH keys.
  • Keys in an SSH agent, per host or identity: the system's, 1Password, Bitwarden, Secretive
    (macOS), Pageant (Windows) or any socket or pipe. The editor shows which agents run here and
    the keys they hold; pick one key so only that one is offered. The vault keeps the agent's name
    and the key's fingerprint, never a path or a secret, so a team's identity can say "the deploy
    key in 1Password". Security keys (FIDO2, sk-) held by an agent ask for a touch.
    Windows signs in through OpenSSH's agent pipe (where 1Password and Bitwarden also listen).
  • morphgate:// links ("Open in MorphGate" on the website and in consoles) open an invite
    ready to join, Sync, Teams or a team's page, or quick connect filled in. A link never joins or
    connects by itself, and ignores passwords; links wait while the vault is locked. See
    docs/features/deep-links.md.
  • Split panes: Split (above a session) opens this host again, or another, beside or below it in
    the same tab; drag the borders to resize, close a pane from its header. Broadcast sends what
    you type, and the snippets you run, to eve...
Read more