{"id":13526861,"url":"https://github.com/smithclay/faassh","last_synced_at":"2025-03-22T19:33:23.129Z","repository":{"id":57524801,"uuid":"87227835","full_name":"smithclay/faassh","owner":"smithclay","description":"simple go SSH server with reverse tunneling designed for running in cloud functions like AWS lambda","archived":false,"fork":false,"pushed_at":"2019-04-23T22:46:56.000Z","size":121,"stargazers_count":89,"open_issues_count":2,"forks_count":7,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-18T14:05:51.650Z","etag":null,"topics":["aws-lambda","cloud-functions","ssh-server","tunnel"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/smithclay.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-04T19:41:11.000Z","updated_at":"2024-07-02T11:09:50.000Z","dependencies_parsed_at":"2022-09-26T18:11:50.004Z","dependency_job_id":null,"html_url":"https://github.com/smithclay/faassh","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithclay%2Ffaassh","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithclay%2Ffaassh/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithclay%2Ffaassh/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/smithclay%2Ffaassh/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/smithclay","download_url":"https://codeload.github.com/smithclay/faassh/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245013737,"owners_count":20547175,"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":["aws-lambda","cloud-functions","ssh-server","tunnel"],"created_at":"2024-08-01T06:01:36.183Z","updated_at":"2025-03-22T19:33:22.672Z","avatar_url":"https://github.com/smithclay.png","language":"Go","funding_links":[],"categories":["Go","\u003ca id=\"01e6651181d405ecdcd92a452989e7e0\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"9d6789f22a280f5bb6491d1353b02384\"\u003e\u003c/a\u003e隧道\u0026\u0026穿透"],"readme":"# faassh\n### simple go SSH server designed for running in cloud functions\n\n![image](https://cloud.githubusercontent.com/assets/27153/25602411/819d0b02-2ea8-11e7-9f64-157226b2d4cb.png)\n\nThis is just for fun. It's a simple SSH server and tunnel-er that allows you to SSH into a running lambda function—until it times out.\n\nDeveloped for my [dotScale](https://dotscale.io) 2017 talk, \"Searching for the Server in Serverless\". Slides [here](http://speakerdeck.com/smithclay/searching-for-the-server-in-serverless).\n\n## building\n\nThis project uses the [Serverless Application Model](https://aws.amazon.com/serverless/sam/) for packaging and deploying.\n\n```sh\n   $ sam build\n   $ sam package --s3-bucket \u003cyourbucket\u003e \u003e packaged.yaml\n   $ sam deploy --template-file packaged.yaml --stack-name \u003cyourstack\u003e --capabilities CAPABILITY_IAM\n```\n\n## usage\n\n```\n   faassh -i ./path_to_private_rsa_host_key -p port_number\n```\n\n## example\n\nSee the example node.js lambda function in the `lambda/` directory.\n\n* Generate RSA keys for the Lambda function and bundle inside the `lambda` directory (`ssh-keygen -t rsa -f ./id_rsa`)\n* Set the envionment variables to point to your SSH jump host with the correct username.\n\nIf you'd like to test it on your local laptop that's behind (hopefully) a NAT/firewall, I like the TCP forwarding available on [ngrok](https://ngrok.com/). You can create a tunnel to your local SSH server for the other end of the tunnel endpoint, you just run: `ngrok tcp 22`.\n\n## other interesting/related projects\n\n* [lambdash](https://github.com/alestic/lambdash) - another approach for running commands in Lambda\n* [awslambdaproxy](https://github.com/dan-v/awslambdaproxy) - An AWS Lambda powered HTTP/SOCKS web proxy\n\n## todo\n\n- better authentication support\n- other cloud providers\n- connection cleanup\n- terraform/cloudformation helper\n- multiple connections\n- tests and docs :)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmithclay%2Ffaassh","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmithclay%2Ffaassh","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmithclay%2Ffaassh/lists"}