Warning: Undefined variable $reporternya in /var/www/saksenengku/wp-content/themes/Newspaper/functions.php on line 230
27.1 C
Jakarta
Minggu, 13 Oktober 2024

Cara Mengelola File Konfigurasi SSH di Linux

File konfigurasi SSH Anda memungkinkan Anda untuk menentukan pengaturan khusus untuk setiap host SSH yang membuat koneksi ke host itu jauh lebih mudah.

Dengan mendefinisikan banyak dari properti umum, atau tidak biasa, ini di dalam file, ini menghilangkan kebutuhan untuk mengingat set parameter ini setiap kali koneksi diperlukan.

Mendefinisikan Koneksi SSH

Jika file, ~/.ssh/config tidak ada, Anda dapat melanjutkan dan membuatnya sekarang. Biasanya, file ini ada di direktori “tersembunyi” .ssh, disembunyikan hanya karena sebagian besar sistem operasi tidak menampilkan direktori yang diawali dengan .. Juga, direktori ini biasanya terletak di direktori home seseorang, atau direktori home dari pengguna yang sedang berjalan ssh, maka ~ notasi, menandakan direktori home.

Penting untuk mengawasi izin di dalam folder .ssh. Sebagian besar klien SSH ingin file menjadi mode 600 di dalam folder ini. Jika mereferensikan folder ini dari Subsistem Windows untuk Linux, Anda harus memastikan untuk chmod 600 ~\.ssh\*

Jadi, seperti apa koneksi SSH sederhana di file ini? Contoh konfigurasi sederhana di bawah ini.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser

Seperti yang Anda tahu dari konfigurasi di atas, ini adalah dasar yang bisa didapat. Bahkan, Anda dapat menghilangkan Port karena tidak terlalu diperlukan karena 22 adalah port SSH default. Dengan mendefinisikan koneksi ini, pada baris perintah kita cukup melakukan hal berikut.

ssh my-ssh-host

Koneksi biasanya akan meminta kata sandi, karena koneksi SSH tidak boleh tidak terlindungi.

Public/Private Keys

Hampir setiap tutorial SSH atau panduan penyiapan di luar sana biasanya akan mereferensikan kunci publik/pribadi pada satu titik atau lainnya. Ini adalah cara yang disukai untuk mengatur koneksi SSH. Alih-alih kata sandi yang dapat diretas atau ditebak, Anda harus benar-benar mendapatkan file kunci. Tutorial ini tidak membahas cara membuatnya, jadi mari kita asumsikan bahwa satu set sudah ada dan diatur dengan benar. Bagaimana kami memberi tahu konfigurasi host kami untuk menggunakan file ini?

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes

Ada dua perintah baru yang telah kami perkenalkan di sini. Perintah IdentityFile dan IdentityOnly. Pertama, kita perlu memberi tahu SSH di mana file kuncinya berada, dalam hal ini kita telah menyimpan file tersebut di direktori .ssh (berhati-hatilah dengan izin).

Baca Juga:  Cara Mendengarkan Podcast di Terminal Linux Anda Dengan Castero

Kedua, kita telah mendefinisikan sebuah tag bernama IdentitiesOnly. Ini akan memberi tahu SSH untuk tidak mencoba setiap file identitas di dalam folder itu, tetapi hanya yang ditentukan. Secara default, SSH akan menelusuri dan mencoba setiap file identitas hingga menemukan file yang tepat. Seringkali ini akan menyebabkan “Terlalu banyak kegagalan otentikasi untuk pengguna myuser” di server target jika ada banyak identitas.

Konfigurasi Kompleks

Ada banyak skenario yang dapat kami bahas dalam artikel ini, tetapi mari kita membahas beberapa skenario yang umum dan bermanfaat.

ForwardAgent

Bagaimana jika Anda memiliki skenario di mana Anda telah membuka koneksi SSH ke server target, yang kemudian perlu membuat koneksi SSH lain ke server kedua dari server target asli tersebut? Anda mungkin berpikir bahwa Anda perlu menyimpan kunci SSH yang sama di server target tersebut untuk melakukan lompatan berikutnya. Ada perintah, tepat bernama ForwardAgent, yang memungkinkan Anda untuk “meneruskan” kunci lokal Anda ke server berikutnya di hop dengan menyiapkan penerusan kunci agen SSH.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	ForwardAgent yes

ProxyJump

Mirip dengan ForwardAgent, seringkali diperlukan untuk membuka koneksi SSH sekunder secara langsung melalui target pertama (atau kedua). Sering kali hal ini terjadi karena mesin dapat di-firewall-kan dari internet umum, tetapi memiliki koneksi ke “jump box”, yang kemudian memungkinkan seseorang untuk membuka koneksi di server yang di-firewall. Mulai dari SSH versi 7.3 dan lebih tinggi, perintah ProxyJump memungkinkan kita melakukannya dengan mudah.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	ForwardAgent yes
	ProxyJump myuser@10.0.0.6:22,myuser2@10.0.0.7:10005

Seperti yang terlihat di atas, ada dua server di sini. Awalnya koneksi SSH akan menuju ke 10.0.0.5 namun kemudian langsung membuka koneksi ke 10.0.0.6, kemudian akhirnya akan membuka koneksi menggunakan user dan port yang berbeda ke 10.0.0.7.

Baca Juga:  OpenResty® Scalable Web Platform dinamis berbasis NGINX dan LuaJIT

Perlu diperhatikan bahwa Anda benar-benar harus memastikan server SSH Anda dikunci.

SSH Proxy Tunnel

Bagaimana jika Anda perlu menyiapkan SOCKSv5 tunnel? Melakukannya cukup mudah menggunakan file konfigurasi. Kami memperkenalkan tiga perintah baru di sini, DynamicForward, ControlMaster, dan ControlPath.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	DynamicForward 8080
  ControlMaster auto
  ControlPath ~/.ssh/%r@%h:%p

Perintah DynamicForward adalah port yang sebenarnya kita cari untuk proksi di seluruh koneksi SSH kita, seperti port 8080. ControlMaster diatur ke otomatis, yang berarti jika ada koneksi, gunakan itu, tetapi jika tidak buat yang baru. Terakhir, ControlPath menetapkan lokasi file soket yang sebenarnya. Dalam hal ini, menggunakan format penamaan %r@%h:%p, yang sesuai dengan myuser@10.0.0.5:22 dalam kasus koneksi ini.

Kesimpulan

Ada banyak daya dalam file Konfigurasi SSH. Contoh yang jauh lebih kompleks dapat didefinisikan, selain kemudahan mendefinisikan banyak host yang berbeda dalam satu lokasi. Dengan melakukan itu, tidak hanya koneksi host terdokumentasi dengan baik, tetapi juga memungkinkan akses cepat dan mudah pada baris perintah. Jika Anda memilih untuk meletakkan file ini di bawah kontrol versi, Anda menambahkan kemampuan untuk memiliki riwayat berjalan dari host Anda dan berpotensi menyelamatkan diri Anda dari sakit kepala besar di masa mendatang. Seperti yang Anda ketahui, file konfigurasi SSH memudahkan pendefinisian host SSH

File konfigurasi SSH Anda memungkinkan Anda untuk menentukan pengaturan khusus untuk setiap host SSH yang membuat koneksi ke host itu jauh lebih mudah.

Dengan mendefinisikan banyak dari properti umum, atau tidak biasa, ini di dalam file, ini menghilangkan kebutuhan untuk mengingat set parameter ini setiap kali koneksi diperlukan.

Mendefinisikan Koneksi SSH

Jika file, ~/.ssh/config tidak ada, Anda dapat melanjutkan dan membuatnya sekarang. Biasanya, file ini ada di direktori “tersembunyi” .ssh, disembunyikan hanya karena sebagian besar sistem operasi tidak menampilkan direktori yang diawali dengan .. Juga, direktori ini biasanya terletak di direktori home seseorang, atau direktori home dari pengguna yang sedang berjalan ssh, maka ~ notasi, menandakan direktori home.

Penting untuk mengawasi izin di dalam folder .ssh. Sebagian besar klien SSH ingin file menjadi mode 600 di dalam folder ini. Jika mereferensikan folder ini dari Subsistem Windows untuk Linux, Anda harus memastikan untuk chmod 600 ~\.ssh\*

Jadi, seperti apa koneksi SSH sederhana di file ini? Contoh konfigurasi sederhana di bawah ini.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser

Seperti yang Anda tahu dari konfigurasi di atas, ini adalah dasar yang bisa didapat. Bahkan, Anda dapat menghilangkan Port karena tidak terlalu diperlukan karena 22 adalah port SSH default. Dengan mendefinisikan koneksi ini, pada baris perintah kita cukup melakukan hal berikut.

ssh my-ssh-host

Koneksi biasanya akan meminta kata sandi, karena koneksi SSH tidak boleh tidak terlindungi.

Public/Private Keys

Hampir setiap tutorial SSH atau panduan penyiapan di luar sana biasanya akan mereferensikan kunci publik/pribadi pada satu titik atau lainnya. Ini adalah cara yang disukai untuk mengatur koneksi SSH. Alih-alih kata sandi yang dapat diretas atau ditebak, Anda harus benar-benar mendapatkan file kunci. Tutorial ini tidak membahas cara membuatnya, jadi mari kita asumsikan bahwa satu set sudah ada dan diatur dengan benar. Bagaimana kami memberi tahu konfigurasi host kami untuk menggunakan file ini?

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes

Ada dua perintah baru yang telah kami perkenalkan di sini. Perintah IdentityFile dan IdentityOnly. Pertama, kita perlu memberi tahu SSH di mana file kuncinya berada, dalam hal ini kita telah menyimpan file tersebut di direktori .ssh (berhati-hatilah dengan izin).

Baca Juga:  Cara mengatasi Perl warning Setting locale failed di Debian

Kedua, kita telah mendefinisikan sebuah tag bernama IdentitiesOnly. Ini akan memberi tahu SSH untuk tidak mencoba setiap file identitas di dalam folder itu, tetapi hanya yang ditentukan. Secara default, SSH akan menelusuri dan mencoba setiap file identitas hingga menemukan file yang tepat. Seringkali ini akan menyebabkan “Terlalu banyak kegagalan otentikasi untuk pengguna myuser” di server target jika ada banyak identitas.

Konfigurasi Kompleks

Ada banyak skenario yang dapat kami bahas dalam artikel ini, tetapi mari kita membahas beberapa skenario yang umum dan bermanfaat.

ForwardAgent

Bagaimana jika Anda memiliki skenario di mana Anda telah membuka koneksi SSH ke server target, yang kemudian perlu membuat koneksi SSH lain ke server kedua dari server target asli tersebut? Anda mungkin berpikir bahwa Anda perlu menyimpan kunci SSH yang sama di server target tersebut untuk melakukan lompatan berikutnya. Ada perintah, tepat bernama ForwardAgent, yang memungkinkan Anda untuk “meneruskan” kunci lokal Anda ke server berikutnya di hop dengan menyiapkan penerusan kunci agen SSH.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	ForwardAgent yes

ProxyJump

Mirip dengan ForwardAgent, seringkali diperlukan untuk membuka koneksi SSH sekunder secara langsung melalui target pertama (atau kedua). Sering kali hal ini terjadi karena mesin dapat di-firewall-kan dari internet umum, tetapi memiliki koneksi ke “jump box”, yang kemudian memungkinkan seseorang untuk membuka koneksi di server yang di-firewall. Mulai dari SSH versi 7.3 dan lebih tinggi, perintah ProxyJump memungkinkan kita melakukannya dengan mudah.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	ForwardAgent yes
	ProxyJump myuser@10.0.0.6:22,myuser2@10.0.0.7:10005

Seperti yang terlihat di atas, ada dua server di sini. Awalnya koneksi SSH akan menuju ke 10.0.0.5 namun kemudian langsung membuka koneksi ke 10.0.0.6, kemudian akhirnya akan membuka koneksi menggunakan user dan port yang berbeda ke 10.0.0.7.

Baca Juga:  Cara Memasang Drive NFS di Linux

Perlu diperhatikan bahwa Anda benar-benar harus memastikan server SSH Anda dikunci.

SSH Proxy Tunnel

Bagaimana jika Anda perlu menyiapkan SOCKSv5 tunnel? Melakukannya cukup mudah menggunakan file konfigurasi. Kami memperkenalkan tiga perintah baru di sini, DynamicForward, ControlMaster, dan ControlPath.

Host my-ssh-host
  HostName 10.0.0.5
  Port 22
  User myuser
	IdentityFile ~/.ssh/id_ed25519_myuser
	IdentitiesOnly yes
	DynamicForward 8080
  ControlMaster auto
  ControlPath ~/.ssh/%r@%h:%p

Perintah DynamicForward adalah port yang sebenarnya kita cari untuk proksi di seluruh koneksi SSH kita, seperti port 8080. ControlMaster diatur ke otomatis, yang berarti jika ada koneksi, gunakan itu, tetapi jika tidak buat yang baru. Terakhir, ControlPath menetapkan lokasi file soket yang sebenarnya. Dalam hal ini, menggunakan format penamaan %r@%h:%p, yang sesuai dengan myuser@10.0.0.5:22 dalam kasus koneksi ini.

Kesimpulan

Ada banyak daya dalam file Konfigurasi SSH. Contoh yang jauh lebih kompleks dapat didefinisikan, selain kemudahan mendefinisikan banyak host yang berbeda dalam satu lokasi. Dengan melakukan itu, tidak hanya koneksi host terdokumentasi dengan baik, tetapi juga memungkinkan akses cepat dan mudah pada baris perintah. Jika Anda memilih untuk meletakkan file ini di bawah kontrol versi, Anda menambahkan kemampuan untuk memiliki riwayat berjalan dari host Anda dan berpotensi menyelamatkan diri Anda dari sakit kepala besar di masa mendatang. Seperti yang Anda ketahui, file konfigurasi SSH memudahkan pendefinisian host SSH

Untuk mendapatkan Berita & Review menarik Saksenengku Network
Google News

Artikel Terkait

Populer

Artikel Terbaru