---
sidebar_position: 2
description: Get connection configuration and other functions to work with SSH in the Open Integration Package, a free open-source integration library for 1C:Enterprise 8, OneScript and CLI
keywords: [1C, 1С, 1С:Enterprise, 1С:Enterprise 8.3, API, Integration, Services, Exchange, OneScript, CLI, SSH]
---

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

# Get connection configuration
 Forms a complete structure of connection settings that can be used instead of the actual connection when calling other functions



`Function GetConnectionConfiguration(Val SSHSettings, Val Proxy = Undefined) Export`

  | Parameter | CLI option | Type | Required | Description |
  |-|-|-|-|-|
  | SSHSettings | --set | Structure Of KeyAndValue | &#x2714; | SSH settings |
  | Proxy | --proxy | Structure Of KeyAndValue | &#x2716; | Proxy settings, if required. See GetProxySettings |

  
  Returns:  Structure Of KeyAndValue - Connection settings structure

:::tip
Can be passed as the `Connection` parameter in other functions instead of the actual connection from the `CreateConnection` function.

At the same time, a new connection will be opened and closed within the called function

It is not recommended to use the connection configuration for multiple requests to the SSH server. This functionality is primarily intended for the CLI version of OInt, where maintaining a connection between calls is not possible
:::
<br/>


```bsl title="1C:Enterprise/OneScript code example"
    Host = "172.33.0.13";
    Port = "2222";

    UseProxy          = True;
    ProxySettings     = Undefined;
    AuthorizationType = "By login and password";

    If AuthorizationType = "By login and password" Then

        Login    = "bayselonarrend";
        Password = "12we...";

        SSHSettings = OPI_SSH.GetSettingsLoginPassword(Host, Port, Login, Password);

    ElsIf AuthorizationType = "By key" Then

        Login      = "bayselonarrend";
        PrivateKey = "./ssh_key";
        PublicKey  = "./ssh_key.pub";

        SSHSettings = OPI_SSH.GetSettingsPrivateKey(Host, Port, Login, PrivateKey, PublicKey);

    Else

        Login       = "bayselonarrend";
        SSHSettings = OPI_SSH.GetSettingsViaAgent(Host, Port, Login);

    EndIf;

    If UseProxy Then

        ProxyType = "http"; // http, socks5, socks4

        ProxyAddress  = "127.0.0.1";
        ProxyPort     = "8071";
        ProxyLogin    = "proxyuser";
        ProxyPassword = "12we...";

        ProxySettings = OPI_SSH.GetProxySettings(ProxyAddress, ProxyPort, ProxyType, ProxyLogin, ProxyPassword);

    EndIf;

    Result = OPI_SSH.GetConnectionConfiguration(SSHSettings, ProxySettings);
```
 

 <Tabs>
  
    <TabItem value="bash" label="Bash" default>
        ```bash
            # JSON data can also be passed as a path to a .json file
            
            oint ssh GetConnectionConfiguration \
             --set "{'auth_type':'private_key','host':'172.33.0.13','port':'2222','username':'bayselonarrend','key_path':'***','pub_path':'/tmp/aonsiazc.4pd.tmp'}" \
             --proxy "{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}"
        ```
    </TabItem>
  
    <TabItem value="bat" label="CMD/Bat" default>
        ```batch
            :: JSON data can also be passed as a path to a .json file
            
            oint ssh GetConnectionConfiguration ^
             --set "{'auth_type':'private_key','host':'172.33.0.13','port':'2222','username':'bayselonarrend','key_path':'***','pub_path':'/tmp/aonsiazc.4pd.tmp'}" ^
             --proxy "{'server':'127.0.0.1','port':'8071','proxy_type':'http','login':'proxyuser','password':'***'}"
        ```
    </TabItem>
</Tabs>


```json title="Result"
{
 "set": {
  "auth_type": "password",
  "host": "172.33.0.13",
  "port": 2222,
  "username": "bayselonarrend",
  "password": "***"
 },
 "proxy": {
  "server": "host.docker.internal",
  "port": 1080,
  "proxy_type": "socks5",
  "login": "proxyuser",
  "password": "***"
 }
}
```
