يتيح خادم ClickHouse الاتصال به مباشرةً عبر بروتوكول SSH. ويمكن استخدام أي عميل.
بعد إنشاء مستخدم قاعدة بيانات مُعرَّف باستخدام مفتاح SSH:
CREATE USER abcuser IDENTIFIED WITH ssh_key BY KEY '<REDACTED>' TYPE 'ssh-ed25519';
يمكنك استخدام هذا المفتاح للاتصال بخادم ClickHouse. سيؤدي ذلك إلى فتح طرفية زائفة (PTY) مع جلسة تفاعلية لـ clickhouse-client.
> ssh -i ~/test_ssh/id_ed25519 abcuser@localhost -p 9022
ClickHouse embedded version 25.1.1.1.
ip-10-1-13-116.us-west-2.compute.internal :) SELECT 1;
SELECT 1
Query id: cdd91b7f-215b-4537-b7df-86d19bf63f64
┌─1─┐
1. │ 1 │
└───┘
1 row in set. Elapsed: 0.002 sec.
كما يُدعم تنفيذ الأوامر عبر SSH (الوضع غير التفاعلي):
> ssh -i ~/test_ssh/id_ed25519 abcuser@localhost -p 9022 "select 1"
1
لتمكين صلاحية خادم SSH، تحتاج إلى إزالة التعليق عن القسم التالي أو إضافته إلى ملف config.xml:
<tcp_ssh_port>9022</tcp_ssh_port>
<ssh_server>
<host_rsa_key>path-to-the-key</host_rsa_key>
<!--host_ecdsa_key>path-to-the-key</host_ecdsa_key-->
<!--host_ed25519_key>path-to-the-key</host_ed25519_key-->
</ssh_server>
يُعد مفتاح المضيف جزءًا أساسيًا من بروتوكول SSH. ويُخزَّن الجزء العام من هذا المفتاح في الملف ~/.ssh/known_hosts على جهة العميل، ويُستخدم عادةً للحماية من هجمات الرجل في الوسط. عند الاتصال بالخادم للمرة الأولى، ستظهر لك الرسالة التالية:
The authenticity of host '[localhost]:9022 ([127.0.0.1]:9022)' can't be established.
RSA key fingerprint is SHA256:3qxVlJKMr/PEKw/hfeg06HAK451Tt0eenhwqQvh58Do.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?
هذا يعني، في الواقع: “هل تريد تذكّر المفتاح العام لهذا المضيف ومتابعة الاتصال؟”.
يمكنك توجيه عميل SSH إلى عدم التحقق من هذا المضيف بتمرير الخيار التالي:
ssh -o "StrictHostKeyChecking no" user@host
يمكنك تمرير خيارات إلى العميل المضمّن بطريقة مشابهة لـ clickhouse-client العادي، ولكن مع بعض القيود.
وبما أن هذا بروتوكول SSH، فالطريقة الوحيدة لتمرير المعلمات إلى المضيف المستهدف هي عبر متغيرات البيئة.
على سبيل المثال، يمكن تعيين format بهذه الطريقة:
> ssh -o SetEnv="format=Pretty" -i ~/test_ssh/id_ed25519 abcuser@localhost -p 9022 "SELECT 1"
┏━━━┓
┃ 1 ┃
┡━━━┩
1. │ 1 │
└───┘
يمكنك بهذه الطريقة تغيير أي user-level setting، وكذلك تمرير معظم خيارات clickhouse-client المعتادة (باستثناء الخيارات التي لا يكون لها معنى في هذا السياق.)
مهم:
إذا مُرِّر كلٌّ من الخيار query وأمر SSH، فسيُضاف الأخير إلى قائمة الاستعلامات المراد تنفيذها:
ubuntu ip-10-1-13-116@~$ ssh -o SetEnv="format=Pretty query=\"SELECT 2;\"" -i ~/test_ssh/id_ed25519 abcuser@localhost -p 9022 "SELECT 1"
┏━━━┓
┃ 2 ┃
┡━━━┩
1. │ 2 │
└───┘
┏━━━┓
┃ 1 ┃
┡━━━┩
1. │ 1 │
└───┘
آخر تعديل في ٢٥ يونيو ٢٠٢٦