--- layout: docs page_title: Manage Sessions sidebar_title: Manage Sessions description: How to manage Boundary sessions --- # Manage Sessions [Sessions](/docs/concepts/domain-model/sessions) are Boundary resources created when connecting to a [target](/docs/concepts/domain-model/target). A target allows Boundary users to define an endpoint with a default-port and a protocol to establish a session. Unless specified with a `-host-id` flag when establishing a session, Boundary will choose one [host](/docs/concepts/domain-model/hosts) from the target's host-sets to connect to at random. In this section, we'll show you the basics of how to start a session, view the session details, and cancel a session in Boundary using the CLI. We assume you're running Boundary in dev mode using the default target resource of `ttcp_1234567890`. We also assume you've authenticated using the CLI. See the output of `boundary dev` for these login values. ## Start a Session Connecting to a target creates a session in Boundary. To demonstrate what a session looks like we are going to connect to a TCP target with a default port of 22 for SSH access. ```bash $ boundary connect ssh -target-id ttcp_1234567890 -- Proxy listening information: Address: 127.0.0.1 Connection Limit: 1 Expiration: Wed, 30 Sep 2020 23:18:14 MST Port: 61991 Protocol: tcp Session ID: s_h7vBIhH5SZ ``` For more information regarding different ways to connect to a target behind Boundary see [Connect to Target](/docs/getting-started/connect-to-target) under Getting Started and [Advanced Session Establishment](#advanced-session-establishment) below. ## View Sessions View all sessions which Boundary has for the project `p_1234567890` by listing them. ```bash $ boundary sessions list -scope-id p_1234567890 Session information: ID: s_h7vBIhH5SZ Status: active Created Time: 2020-09-30T15:18:14-07:00 Expiration Time: 2020-09-30T23:18:14-07:00 Updated Time: 2020-09-30T15:18:35-07:00 User ID: u_1234567890 Target ID: ttcp_1234567890 ``` We can get a more detailed view of a specific session by reading it. ```bash $ boundary sessions read -id s_h7vBIhH5SZ Session information: Auth Token ID: at_51XQGx0bzk Created Time: Wed, 30 Sep 2020 15:18:14 MST Endpoint: tcp://localhost:22 Expiration Time: 2020-09-30T23:18:14-07:00 Host ID: hst_1234567890 Host Set ID: hsst_1234567890 ID: s_h7vBIhH5SZ Status: active Target ID: ttcp_1234567890 Type: tcp Updated Time: 2020-09-30T15:18:35-07:00 User ID: u_1234567890 Version: 2 Scope: ID: p_1234567890 Name: Generated project scope Parent Scope ID: o_1234567890 Type: project States: Start Time: Wed, 30 Sep 2020 15:18:35 MST Status: active End Time: Wed, 30 Sep 2020 15:18:35 MST Start Time: Wed, 30 Sep 2020 15:18:14 MST Status: pending ``` ## Cancel a Session To cancel a session the person initiating the connection can disconnect all connections, or a request can be sent to Boundary to cancel it. ```bash $ boundary sessions cancel -id s_h7vBIhH5SZ Session information: Auth Token ID: at_51XQGx0bzk Created Time: Wed, 30 Sep 2020 15:18:14 MST Endpoint: tcp://localhost:22 Expiration Time: 2020-09-30T23:18:14-07:00 Host ID: hst_1234567890 Host Set ID: hsst_1234567890 ID: s_h7vBIhH5SZ Status: canceling Target ID: ttcp_1234567890 Type: tcp Updated Time: 2020-09-30T15:19:17-07:00 User ID: u_1234567890 Version: 3 Scope: ID: p_1234567890 Name: Generated project scope Parent Scope ID: o_1234567890 Type: project States: Start Time: Wed, 30 Sep 2020 15:19:17 MST Status: canceling End Time: Wed, 30 Sep 2020 15:19:17 MST Start Time: Wed, 30 Sep 2020 15:18:35 MST Status: active End Time: Wed, 30 Sep 2020 15:18:35 MST Start Time: Wed, 30 Sep 2020 15:18:14 MST Status: pending ``` Boundary then cancels the session and move it into a "Terminated" state. ## Advanced Session Establishment Above we discussed connecting to a target using the `boundary connect` command. In addition to this we can create a session to a target and connect to that session in separate steps. This is accomplished using the `boundary targets authorize-session` command, which generates a authorization token that users can use to start a session via `boundary proxy` at their own convenience. ```bash $ boundary targets authorize-session -id ttcp_1234567890 Target information: Authorization Token: $LONG_STRING_OF_TEXT Created Time: 2020-09-30T15:18:14-07:00 Host ID: hst_1234567890 Scope ID: p_1234567890 Session ID: s_h7vBIhH5SZ Target ID: ttcp_1234567890 Type: tcp User ID: u_1234567890 ``` Note: You can also provide a -host-id flag in the request above which ensures connecting using the provided Authorization Token will connect you to this specific host. ```bash $ boundary proxy -authz $LONG_STRING_OF_TEXT Proxy listening information: Address: 127.0.0.1 Connection Limit: 1 Expiration: Wed, 30 Sep 2020 23:18:14 MST Port: 61991 Protocol: tcp Session ID: s_h7vBIhH5SZ ``` With the above address and port information we can now connect to our local proxy and have our tcp traffic sent through the Boundary system. ```bash $ ssh 127.0.0.1 -p 61991 ... ```