{"id":17743104,"url":"https://github.com/julien-r44/fast-ssh","last_synced_at":"2025-04-05T13:09:35.914Z","repository":{"id":45976437,"uuid":"428885469","full_name":"Julien-R44/fast-ssh","owner":"Julien-R44","description":"⌨️ FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.","archived":false,"fork":false,"pushed_at":"2024-04-27T23:32:56.000Z","size":84,"stargazers_count":151,"open_issues_count":9,"forks_count":14,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-14T13:36:19.435Z","etag":null,"topics":["command-line","command-line-tool","ssh","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Julien-R44.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["julien-r44"],"polar":"Julien-R44"}},"created_at":"2021-11-17T02:41:35.000Z","updated_at":"2024-10-06T08:30:55.000Z","dependencies_parsed_at":"2024-01-14T06:51:23.599Z","dependency_job_id":"d26b9a40-ef19-42b4-b3e6-2a70ea004b2b","html_url":"https://github.com/Julien-R44/fast-ssh","commit_stats":{"total_commits":76,"total_committers":4,"mean_commits":19.0,"dds":0.07894736842105265,"last_synced_commit":"de145d7863c234ec2ad5afdf025fd2ab19a059c3"},"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-R44%2Ffast-ssh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-R44%2Ffast-ssh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-R44%2Ffast-ssh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Julien-R44%2Ffast-ssh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Julien-R44","download_url":"https://codeload.github.com/Julien-R44/fast-ssh/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247339158,"owners_count":20923014,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line","command-line-tool","ssh","terminal","tui"],"created_at":"2024-10-26T05:42:38.759Z","updated_at":"2025-04-05T13:09:35.887Z","avatar_url":"https://github.com/Julien-R44.png","language":"Rust","funding_links":["https://github.com/sponsors/julien-r44","https://polar.sh/Julien-R44"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"https://i.imgur.com/4Mb6msT.png\" /\u003e\n    \u003cbr/\u003e\n    \u003cb\u003eConnect quickly to your services 🚀\u003c/b\u003e\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003ca href=\"https://github.com/Julien-R44/fash-ssh/actions/workflows/release.yml\"\u003e\n        \u003cimg src=\"https://github.com/Julien-R44/fast-ssh/actions/workflows/release.yml/badge.svg\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://crates.io/crates/fast-ssh\"\u003e\n        \u003cimg src=\"https://img.shields.io/crates/v/fast-ssh.svg\" /\u003e\n    \u003c/a\u003e\n    \u003cimg src=\"https://img.shields.io/crates/l/fast-ssh.svg\"\u003e\n    \u003cbr/\u003e\n    \u003cbr/\u003e\n    \u003cdiv\u003e\n        FastSSH is a TUI that allows you to quickly connect to your services by navigating through your SSH config.\n    \u003c/div\u003e\n    \u003cbr/\u003e\n\u003c/div\u003e\n\n![](https://i.imgur.com/pVf2hES.png)\n\n# Installation\nDownload the latest release for your platform [here](https://github.com/Julien-R44/fast-ssh/releases), extract it and put it in a directory that is in your PATH (Packages managers coming soon). For example:\n\n```\nsudo cp fast-ssh /usr/bin/fast-ssh\n```\n\nIf you use cargo you can run `cargo install fast-ssh`\n\nThen you can launch Fast-SSH with `fast-ssh`. \n\n# Documentation\nThe default SSH configuration file should be located at `~/.ssh/config`. If you already have an SSH configuration file with some hosts defined then you don't have to add anything, Fast-SSH just parses this file and displays it. If you don't have an SSH configuration file or you don't have any hosts defined within it then below is an example to help you set one up for use with Fast-SSH. Further information about the SSH configuration file can be found at this link: https://linuxize.com/post/using-the-ssh-config-file/\n\n```\nHost *\n    UpdateHostKeys yes\n    \nHost Desktop                            # Name of host you want to connect to, for use with Fast-SSH.\n    HostName 192.168.1.10               # Hostname using an IP address, this can be a public or private one.\n    User YourCoolUsername               # Username for the host you want to SSH into.\n    \nHost Server                             # Name of host you want to connect to, for use with Fast-SSH.\n    HostName 216.58.214.14              # Hostname using an IP address, this can be a public or private one.\n    User YourCoolUsername               # Username for the host you want to SSH into.\n    \nHost AnotherServer                      # Name of host you want to connect to, for use with Fast-SSH.\n    HostName example.com                # Hostname using a domain name.\n    User YourCoolUsername               # Username for the host you want to SSH into.\n    \nHost RaspberyPi/Arch-Linux              # Defined group and name of host for use with Fast-SSH.\n    HostName alarm-pi.local             # Hostname using a locally resolved address.\n    User YourCoolUsername               # Username for the host you want to SSH into.\n    \nHost RaspberryPi/Raspbian               # Defined group and name of host for use with Fast-SSH.\n    HostName raspbian.lan               # Hostname using a locally resolved address.\n    User YourCoolUsername               # Username for the host you want to SSH into.\n```\n\nFast-SSH has a group system. This allows you to sort your servers, for example, by project, mission or client. To make some groups, it's simple, just define your `Host` as `Group/ServerName` (see full configuration in above example) and your groups will be displayed in FastSSH. You can now select a group and display only the servers defined in that group. Now all you have to do is launch Fast-SSH, select your service and press enter to connect.\n\n## File Database\nA file database is stored at `$XDG_CONFIG_HOME/FastSSH/db.ron` ( `%APPDATA%/FastSSH/db.ron` for Windows ). \n\nThis file is automatically created when you launch Fast-SSH. \nThis database is used to store the number of connections to a service and the date of last connection.\n\n## Search Mode\nFast-SSH implements a search mode ( fuzzy ) that allows you to type to find one of your hosts. To use it, press `s`, start typing, finish your selection with the arrow keys then press enter once the host is selected to make the SSH connection. Press ESC if you wish to leave the search mode and return to the \"groups\" mode.\n\n## Shortcuts\n| Key           | Action                               |\n| ------------- | -------------                        |\n| h             | Display Shortcuts Panel              |\n| Enter         | Validate selection : Execute SSH cmd |\n| Tab/BackTab   | Navigate through your groups         |\n| Left/Right    | Navigate through your groups         |\n| Up/Down       | Navigate through your hosts          |\n| c             | Switch Config display mode           |\n| PageUp/Down   | Scroll Configuration                 |\n| s             | Enable Search Mode                   |\n| Esc           | Exit Search Mode                     |\n| q             | Exit Fast-SSH                        |\n\n\n## Configuration\nFast-SSH has a few configuration options. You can find the configuration in :\n- Unix : `$XDG_CONFIG_HOME/FastSSH/config.yaml`\n- Windows : `%APPDATA%/FastSSH/config.yaml`\n\n```\n# This is the default configuration for FastSSH.\n\ntheme:\n    text_primary: \"#b967ff\"\n    text_secondary: \"#ffffff\"\n    border_color: \"#b967ff\"\n```\n\n# Known issues\nIf you are a user of the new Windows terminal and you encounter raw ANSI escape sequences when you run fast-ssh, you must unset the TERM environment variable before running the application. Read more about this here : https://github.com/crossterm-rs/crossterm/issues/580\n\nBest solution would be to create an alias like this : \n```\nalias fast-ssh=\"TERM= fast-ssh\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulien-r44%2Ffast-ssh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjulien-r44%2Ffast-ssh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjulien-r44%2Ffast-ssh/lists"}