diff --git a/e2e-tests/cypress/e2e/connect.cy.js b/e2e-tests/cypress/e2e/connect.cy.js
index 39bf8a110..3869063f7 100644
--- a/e2e-tests/cypress/e2e/connect.cy.js
+++ b/e2e-tests/cypress/e2e/connect.cy.js
@@ -23,9 +23,48 @@ describe('Initialization', () => {
cy.contains('performance_schema');
});
+ // it('SSH connection', () => {
+ // const runOnCI = Cypress.env('runOnCI');
+
+ // cy.get('body')
+ // .trigger('keydown', {
+ // key: 'F1',
+ // code: 'F1',
+ // which: 112,
+ // keyCode: 112,
+ // bubbles: true,
+ // })
+ // .trigger('keyup', {
+ // key: 'F1',
+ // code: 'F1',
+ // which: 112,
+ // keyCode: 112,
+ // bubbles: true,
+ // });
+ // cy.get('body').type('Close all');
+ // cy.get('body').type('{enter}');
+
+ // cy.visit('http://localhost:3000');
+ // cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
+ // cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
+ // cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
+ // cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('root');
+
+ // cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').clear().type('root');
+ // cy.get('[data-testid=ConnectionSshTunnelFields_sshPassword]').clear().type('root');
+ // if (runOnCI) {
+ // cy.get('[data-testid=ConnectionSshTunnelFields_sshHost]').clear().type('mysql-ssh');
+ // } else {
+ // cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16006');
+ // }
+ // cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-ssh-1');
+ // cy.get('[data-testid=ConnectionTab_buttonSave]').click();
+ // cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
+ // cy.contains('performance_schema');
+ // });
+
// it('import chinook DB', () => {
// cy.visit('http://localhost:3000');
// cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
// });
-
});
diff --git a/e2e-tests/docker-compose.yaml b/e2e-tests/docker-compose.yaml
index 292ffeb0f..e983cdd4a 100644
--- a/e2e-tests/docker-compose.yaml
+++ b/e2e-tests/docker-compose.yaml
@@ -16,3 +16,10 @@ services:
- 16004:3306
environment:
- MYSQL_ROOT_PASSWORD=Pwd2020Db
+
+ mysql-ssh:
+ build: mysql-ssh
+ restart: always
+ ports:
+ - 16005:3306
+ - 16006:22
diff --git a/e2e-tests/mysql-ssh/Dockerfile b/e2e-tests/mysql-ssh/Dockerfile
new file mode 100644
index 000000000..6744b701d
--- /dev/null
+++ b/e2e-tests/mysql-ssh/Dockerfile
@@ -0,0 +1,22 @@
+FROM ubuntu:22.04
+
+RUN apt-get update && \
+ apt-get install -y openssh-server mysql-server && \
+ apt-get clean && \
+ rm -rf /var/lib/apt/lists/*
+
+RUN mkdir /var/run/sshd
+
+RUN sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/' /etc/ssh/sshd_config
+RUN echo 'root:root' | chpasswd
+
+RUN service mysql start && \
+ mysql -uroot -e "ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; FLUSH PRIVILEGES;" && \
+ service mysql stop
+
+EXPOSE 22 3306
+
+COPY start.sh /start.sh
+RUN chmod +x /start.sh
+
+CMD ["/start.sh"]
\ No newline at end of file
diff --git a/e2e-tests/mysql-ssh/start.sh b/e2e-tests/mysql-ssh/start.sh
new file mode 100644
index 000000000..ef09d973e
--- /dev/null
+++ b/e2e-tests/mysql-ssh/start.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+service ssh start
+
+service mysql start
+
+tail -f /dev/null
diff --git a/packages/web/src/settings/ConnectionSshTunnelFields.svelte b/packages/web/src/settings/ConnectionSshTunnelFields.svelte
index 804d83c6c..8b5bfe783 100644
--- a/packages/web/src/settings/ConnectionSshTunnelFields.svelte
+++ b/packages/web/src/settings/ConnectionSshTunnelFields.svelte
@@ -28,7 +28,12 @@
$: isConnected = $openedConnections.includes($values._id) || $openedSingleDatabaseConnections.includes($values._id);
-