Skip to main content
Version: v25.07.31

SSH Troubelshooting

This document provides steps to troubleshoot SSH Proxy related issues. When users are unable to connect to SSH Proxy, possible causes include speed issues, resource access failure, or complete connectivity failure. Troubleshooting requires checking the configuration on both CE and PE and checking the connection status and logs.


Troubleshooting Steps

Cloud Configuration Verification

This section details how to check the configurations made in the cloud. The commands below can be used to verify the cloud configuration.

Check Last Cloud Config Response for SSH

This command checks the latest configuration in JSON format and highlights any lines related to SSH. It's helpful for fixing sync issues between the cloud and a CE device.

cat /tmp/last_config_response.json | jq | grep -i socks

The given one is just an example output; when this command is run, it will show something like this.

Example Response

"socksProxy": true,
"socksProxyType": "SSH",
"socksProxyPrivateKey": "LS0tLS1CRUdJTiBPUEVOU1NIIFBSSVZBVEUgS0VZLS0tLS0KYjNCbGJuTnphQzFyWlhrdGRqRUFBQUFBQkc1dmJtVUFBQUFFYm05dVpRQUFBQUFBQUFBQkFBQUJGd0FBQUFkemMyZ3RjbgpOaEFBQUFBd0VBQVFBQUFRRUFyRUx5T20xUDltZ21XNzFsbWZWNTlhdS9GRERmOXRSQk5yZ2hmY0RpTlgxK0JVcGpZNGU5CjdNRHBraUNqU0QvVXhNUnVlc3ZPckc4b1FNeEh2YSt5TmRtT1orRmNzSktsUlVoSTUvT0JJdGFhN3IrQmJYMmt6amEyWjYKVUpNZ3ozeEEzcDZ0NytmOXBRYWdVd3JJNmpRTzZvSC9DQkl3dkdhZXB3K1lhb216TUdWNkJ6aGN4bTBCSVFpeXRwRjl2RApDYWs4VmNhZ0MzdndDMnFTOXp0RXJjZEEzdG4yd0hMTTN2ei9ldllzS1d0MXdJYm9BZjNCWmY3a1RFcmZ0VXpHOWxRM010CjFMNU1SVUk4QUdOOUhLNVRvRzc5UWNTTEdpN0MyVDA5UkJlWU4yeHFhbnRXV2RaSWlObDFYOGtDaE1xc1A0L0hpWDA2UHUKeFVuUVovdkI3UUFBQThobk9qVUVaem8xQkFBQUFBZHpjMmd0Y25OaEFBQUJBUUNzUXZJNmJVLzJhQ1pidldXWjlYbjFxNwo4VU1OLzIxRUUydUNGOXdPSTFmWDRGU21Oamg3M3N3T21TSUtOSVA5VEV4RzU2eTg2c2J5aEF6RWU5cjdJMTJZNW40Vnl3CmtxVkZTRWpuODRFaTFwcnV2NEZ0ZmFUT05yWm5wUWt5RFBmRURlbnEzdjUvMmxCcUJUQ3NqcU5BN3FnZjhJRWpDOFpwNm4KRDVocWliTXdaWG9IT0Z6R2JRRWhDTEsya1gyOE1KcVR4VnhxQUxlL0FMYXBMM08wU3R4MERlMmZiQWNzemUvUDk2OWl3cAphM1hBaHVnQi9jRmwvdVJNU3QrMVRNYjJWRGN5M1V2a3hGUWp3QVkzMGNybE9nYnYxQnhJc2FMc0xaUFQxRUY1ZzNiR3BxCmUxWloxa2lJMlhWZnlRS0V5cXcvajhlSmZUbys3RlNkQm4rOEh0QUFBQUF3RUFBUUFBQVFFQW9HR0FGd2ZaVUFndDFuSWkKMjFIaVorbXNjSWNFcmxGMkdoVWJFWEw0NldaYVkyQ2I0bm5xU1RoZS9xOG1kc2ovTnVmUUdNSVNQUmNNK2k5M2g5TEI4RQpNS3hBcmRlb1ErSGFBc1NOQzg1WXU3R2hmd3o5a1FEUEtCcDBQUHFPckw3NXdvc29WRm5CSE5scmdZVmtCREhOeFdhYzVJCjNURkVYUzVxV3RlVnVWQWtOTlY4VWZtT0QyU0hWOVpBaURLMUQ5LzZ3WUtMSkdvK2NQSUhCYVNyaGptZTR4aEtWTjlqT2sKQ0JqVUFaOE9mMGJ0bTBsTmgwSW44QW1TQTh6ZVZoSG0rT29MRU01ZXRLR2tqK3EveUR6R0RxR0VOTStGeTZjc2JxZ0tqMQpzUjdwN29zaU9UK3ExeklJU2VzYXZJTzE3b1FyQjNMN3NteGhsZm43WXJoU1lRQUFBSUF0YU4zaXdJcFVsb0ZTTG5KZDd0CnVzODNYcTU5RHl3YnByVGhLT1ByUy9icHJtcFFXcXB1ckFrN0JSM1UyN2ZyZTIvNTMyWDkvSVMxb1BDWHFsUHZNd3JOUXcKcnFCOWxpSlQ4Qi9zSXozdmg5V2lHallxTVNNMnd2U3V5dTBIVzJab1M3bktiMXFhb01NUVlHUXZYZGQwWDJLVGUrTm40cgo3ZlNORUNIOStXMFFBQUFJRUExbFNFNEszU3RzVWRLeTRzUm9FMjNmaEFXZ2FuYWJCOCtpMG5tWTg2eFd5RU9kTkpTRnE3CnZVR2NGY2V1bmpXM1JOMlJ0NFBmRlhUcWovNTU1SWpXZkVOVlBIRjlhM3dYN3dkbEs1aEt2cUZscEJ0WHpsaWxOL0N5eW0KVEtCaS9PVlVWZDVDaitXY2NzQk8xRnF1dHhrczBJM05DU0t0d1NQTzNHbHBZZ3JCVUFBQUNCQU0zQW5pNDFDN2xsR0hpYwo3ekRDVnZ5TE8waTdwOGgvMFpUNXI1d2NkRFNjdjlwbHRjVzNMRU5wRFlHU2Fic014L2VsdjQ5Z2Y4TFE2bTJOWVMvUGZmCmczSmh4MUNzQWxMTEhoL0doNWo2cWVQYVJmUi9uK2wzQTFONkNpUDdwRUZrL3VXeERhcFkwSWdneG1rWGpZRS9xTVNtWUEKa1lIUEViSmVkY3h2UDd4NUFBQUFEbWhwTFdOc2IzVmtjMEJsWkdkbEFRSURCQT09Ci0tLS0tRU5EIE9QRU5TU0ggUFJJVkFURSBLRVktLS0tLQo=",
"socksProxyPublicKey": "c3NoLXJzYSBBQUFBQjNOemFDMXljMkVBQUFBREFRQUJBQUFCQVFDc1F2STZiVS8yYUNaYnZXV1o5WG4xcTc4VU1OLzIxRUUydUNGOXdPSTFmWDRGU21Oamg3M3N3T21TSUtOSVA5VEV4RzU2eTg2c2J5aEF6RWU5cjdJMTJZNW40Vnl3a3FWRlNFam44NEVpMXBydXY0RnRmYVRPTnJabnBRa3lEUGZFRGVucTN2NS8ybEJxQlRDc2pxTkE3cWdmOElFakM4WnA2bkQ1aHFpYk13WlhvSE9GekdiUUVoQ0xLMmtYMjhNSnFUeFZ4cUFMZS9BTGFwTDNPMFN0eDBEZTJmYkFjc3plL1A5Njlpd3BhM1hBaHVnQi9jRmwvdVJNU3QrMVRNYjJWRGN5M1V2a3hGUWp3QVkzMGNybE9nYnYxQnhJc2FMc0xaUFQxRUY1ZzNiR3BxZTFaWjFraUkyWFZmeVFLRXlxdy9qOGVKZlRvKzdGU2RCbis4SHQgaGktY2xvdWRzQGVkZ2UK",
"description": "6426ea7e83066500241c5f3a@hiclouds.io ( IND - test-shadowsocks ) ( vtun38_2 ) ",
"socksProxy": false,
"socksProxyType": null,
"socksProxyPrivateKey": null,
"socksProxyPublicKey": null,

Verify CE Configuration

Log into the CE and inspect the SSH configuration file. The location may be different but common locations include /etc/config# cat /etc/config/socks. Run the following command.

/etc/config# cat /etc/config/socks

The given one is just an example output; when this command is run, it will show something like this.

Example Response

config ssh 'vtun_50024'
option localport '50024'
option key_file '/etc/dropbear/vtun38_2.key'
option user 'edge'
option server '34.93.120.41'
option server_port '25321'
option enabled '1'

This command shows the configuration file contents. Carefully check the settings, especially the server address, port, and password.

Verify OpenVPN Configuration

This command is used to view OpenVPN-related configurations. It shows the OpenVPN-related configurations.

cat /etc/config/openvpn

The given one is just an example output; when this command is run, it will show something like this.

Example Response

option socks_proxy '127.0.0.1 50024'
option socks_proxy_retry '30'

Check for Configuration Errors

Review both configuration files for syntax errors, typos, or wrong characters. Even a tiny error can keep ssh from working correctly. For the PE's JSON configuration, validate the file with a JSON validator, either online or command line tools. Invalid JSON will prevent ssh from starting.

Q:1 The JSON shows "socksProxy": false even though I enabled SSH in cloud — why?

This usually happens when the latest cloud configuration has not been pushed or synced to the CE device. Even if SSH Proxy is enabled in the cloud UI, the CE will still show "socksProxy": false until: The CE receives the updated configuration , The cloud sync completes successfully , The CE applies the new SSH settings. If the value remains false, it means the CE is still using an older configuration. You can force a re-sync or reboot the CE to trigger a fresh configuration pull.

Q:2 Where can I check OpenVPN-related configuration on the CE?

You can check OpenVPN-related configuration on the CE by viewing the OpenVPN UCI config file: cat /etc/config/openvpn , This file contains entries such as: option socks_proxy '127.0.0.1 50024' , option socks_proxy_retry '30' . These values confirm whether OpenVPN is correctly configured to use the SSH-based SOCKS proxy.

Q:3 Can I validate the JSON configuration manually?

Yes. You can manually validate the JSON configuration on the PE using a JSON formatter or validator. For example: cat /etc/shadowsocks-libev/file.json | json_pp . This helps you: Detect syntax errors , Identify missing commas, brackets, or invalid characters, Ensure the JSON structure is valid, You may also use any online JSON validator if needed. Invalid JSON will prevent the SSH/Proxy service from starting.