<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: FazaFauzannn</title>
    <description>The latest articles on DEV Community by FazaFauzannn (@fazafauzannn).</description>
    <link>https://dev.to/fazafauzannn</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1358775%2F7e50e916-2c89-43d7-bc76-3a1f581e95b8.png</url>
      <title>DEV Community: FazaFauzannn</title>
      <link>https://dev.to/fazafauzannn</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fazafauzannn"/>
    <language>en</language>
    <item>
      <title>Improving Command-line Productivity</title>
      <dc:creator>FazaFauzannn</dc:creator>
      <pubDate>Tue, 09 Apr 2024 07:03:46 +0000</pubDate>
      <link>https://dev.to/fazafauzannn/improving-command-line-productivity-pkm</link>
      <guid>https://dev.to/fazafauzannn/improving-command-line-productivity-pkm</guid>
      <description>&lt;p&gt;&lt;strong&gt;Writing Simple Bash Scripts&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;Tujuan&lt;/strong&gt;&lt;br&gt;
Setelah menyelesaikan bagian ini, Anda seharusnya dapat mengotomatiskan urutan perintah dengan menulis skrip shell sederhana.&lt;/p&gt;
&lt;h2&gt;
  
  
  Membuat dan Menjalankan Skrip Bash Shell
&lt;/h2&gt;

&lt;p&gt;Banyak tugas administrasi sistem yang sederhana dan umum dilakukan dengan menggunakan alat bantu baris perintah. Tugas-tugas dengan kompleksitas yang lebih besar sering kali membutuhkan rangkaian beberapa perintah yang memberikan hasil di antara perintah-perintah tersebut. Dengan menggunakan lingkungan shell Bash dan fitur skrip, perintah-perintah Linux digabungkan ke dalam skrip shell untuk menyelesaikan masalah dunia nyata yang berulang dan sulit dengan mudah.&lt;br&gt;
Dalam bentuknya yang paling sederhana, skrip shell Bash adalah file yang dapat dieksekusi yang berisi daftar perintah, dan mungkin dengan logika pemrograman untuk mengontrol pengambilan keputusan dalam keseluruhan tugas. Jika ditulis dengan baik, skrip shell adalah alat baris perintah yang kuat dengan sendirinya, dan dapat dimanfaatkan oleh skrip lain.&lt;br&gt;
Kemahiran skrip shell sangat penting untuk administrasi sistem yang sukses dalam lingkungan operasional apa pun. Pengetahuan tentang skrip shell sangat penting dalam lingkungan perusahaan, di mana penggunaan skrip dapat meningkatkan efisiensi dan akurasi penyelesaian tugas rutin.&lt;br&gt;
Anda dapat membuat skrip shell Bash dengan membuka file kosong baru di editor teks. Meskipun Anda dapat menggunakan editor teks apa pun, editor tingkat lanjut, seperti vim atau emacs, memahami sintaksis shell Bash dan dapat memberikan penyorotan dengan kode warna. Penyorotan ini membantu mengidentifikasi kesalahan umum seperti sintaks yang tidak tepat, tanda kutip yang tidak berpasangan, tanda kurung yang tidak tertutup, tanda kurung, dan tanda kurung, dan masih banyak lagi.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Menentukan Interpreter Perintah&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Baris pertama skrip dimulai dengan notasi '#!', biasanya disebut sebagai sh-bang atau she-bang, dari nama dua karakter, sharp dan bang. Notasi angka aj aib dua-byte khusus ini mengindikasikan sebuah skrip interpretasi; sintaks yang mengikuti notasi tersebut adalah nama file yang memenuhi syarat untuk penerjemah perintah yang benar yang diperlukan untuk memproses baris skrip ini. Untuk memahami bagaimana angka ajaib mengindikasikan jenis file di Linux, lihat halaman man file(1) dan magic(5). Untuk berkas skrip yang menggunakan sintaksis skrip Bash, baris pertama skrip shell dimulai sebagai berikut:&lt;br&gt;
&lt;code&gt;#!/bin/bash&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Menjalankan Skrip Bash Shell&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Skrip shell yang telah selesai dibuat harus dapat dieksekusi agar dapat dijalankan sebagai perintah biasa. Gunakan perintah chmod untuk menambahkan izin eksekusi, mungkin bersamaan dengan perintah chown untuk mengubah kepemilikan file skrip. Berikan izin eksekusi hanya untuk pengguna skrip yang dituju.&lt;br&gt;
Jika Anda menempatkan skrip pada salah satu direktori yang terdaftar pada variabel lingkungan PATH, maka Anda dapat memanggil skrip shell dengan menggunakan nama file saja seperti pada perintah lainnya. Shell menggunakan perintah pertama yang ditemukannya dengan nama file tersebut; hindari menggunakan nama perintah yang sudah ada untuk nama file skrip shell Anda. Sebagai alternatif, Anda dapat memanggil skrip shell dengan memasukkan nama path ke skrip pada baris perintah. Perintah which, diikuti dengan nama file skrip yang dapat dieksekusi, menampilkan nama path ke perintah yang akan dieksekusi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ which hello
~/bin/hello
[user@host ~]$ echo $PATH
/home/user/.local/bin:/home/user/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Mengutip Karakter Khusus&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sejumlah karakter dan kata memiliki arti khusus pada shell Bash. Namun, terkadang Anda ingin menggunakan karakter-karakter ini untuk nilai harfiahnya, dan bukan untuk arti khususnya. Untuk melakukan hal ini, gunakan salah satu dari tiga alat untuk menghapus (atau melarikan diri) dari arti khusus: garis miring (), tanda kutip tunggal (''), atau tanda kutip ganda ("").&lt;br&gt;
Karakter escape backslash akan menghapus makna khusus dari karakter tunggal yang langsung mengikutinya. Sebagai contoh, untuk menampilkan string literal # bukan komentar dengan perintah echo, tanda # tidak boleh ditafsirkan oleh Bash sebagai memiliki arti khusus. Tempatkan karakter garis miring di depan tanda #.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ echo # not a comment

[user@host ~]$ echo \# not a comment
# not a comment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Saat Anda perlu mengeluarkan lebih dari satu karakter dalam string teks, gunakan karakter escape beberapa kali atau gunakan tanda kutip tunggal (''). Tanda kutip tunggal mempertahankan arti harfiah dari semua karakter yang diapitnya. Perhatikan karakter escape dan tanda kutip tunggal dalam tindakan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ echo # not a comment #

[user@host ~]$ echo \# not a comment #
# not a comment
[user@host ~]$ echo \# not a comment \#
# not a comment #
[user@host ~]$ echo '# not a comment #'
# not a comment #
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Gunakan tanda petik ganda untuk menekan globbing dan ekspansi shell, tetapi tetap mengizinkan substitusi perintah dan variabel. Substitusi variabel secara konseptual identik dengan substitusi perintah, tetapi dapat menggunakan sintaks brace opsional. Perhatikan contoh berbagai bentuk penggunaan tanda kutip di bawah ini.&lt;br&gt;
Gunakan tanda petik tunggal untuk mengartikan semua teks secara harfiah. Selain menekan globbing dan ekspansi shell, tanda petik mengarahkan shell untuk menekan perintah dan substitusi variabel. Tanda tanya (?) adalah karakter meta yang juga membutuhkan perlindungan dari perluasan.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ var=$(hostname -s); echo $var
host
[user@host ~]$ echo "***** hostname is ${var} *****"
***** hostname is host *****
[user@host ~]$ echo Your username variable is \$USER.
Your username variable is $USER.
[user@host ~]$ echo "Will variable $var evaluate to $(hostname -s)?"
Will variable host evaluate to host?
[user@host ~]$ echo 'Will variable $var evaluate to $(hostname -s)?'
Will variable $var evaluate to $(hostname -s)?
[user@host ~]$ echo "\"Hello, world\""
"Hello, world"
[user@host ~]$ echo '"Hello, world"'
"Hello, world"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Menyediakan Output Dari Skrip Shell&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Perintah echo menampilkan teks sembarang dengan mengoper teks sebagai argumen ke perintah. Secara default, teks ditampilkan pada output standar (STDOUT), tetapi juga dapat diarahkan ke kesalahan standar (STDERR ) menggunakan pengalihan output. Pada skrip Bash sederhana berikut ini, perintah echo menampilkan pesan "Hello, world" ke STDOUT.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ cat ~/bin/hello
#!/bin/bash

echo "Hello, world"

[user@host ~]$ hello
Hello, world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Catatan&lt;/strong&gt;&lt;br&gt;
Pengguna ini dapat menjalankan hello pada prompt karena direktori ~/bin(/home/user/bin) ada di variabel PATH pengguna dan skrip hello di dalamnya dapat dieksekusi. Shell secara otomatis menemukan skrip di sana, selama tidak ada file yang dapat dieksekusi bernama hello pada direktori manapun yang terdaftar sebelum /home/user/bin pada PATH.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perintah echo banyak digunakan dalam skrip shell untuk menampilkan pesan informasi atau kesalahan. Pesan-pesan ini dapat menjadi indikator yang berguna untuk mengetahui kemajuan skrip dan dapat diarahkan ke output standar, kesalahan standar, atau dialihkan ke file log untuk diarsipkan. Ketika menampilkan pesan kesalahan, merupakan praktik yang baik untuk mengarahkannya ke STDERR agar lebih mudah untuk membedakan pesan kesalahan dari pesan status normal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ cat ~/bin/hello
#!/bin/bash

echo "Hello, world"
echo "ERROR: Houston, we have a problem." &amp;gt;&amp;amp;2

[user@host ~]$ hello 2&amp;gt; hello.log
Hello, world
[user@host ~]$ cat hello.log
ERROR: Houston, we have a problem.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perintah echo juga dapat sangat membantu ketika mencoba men-debug skrip shell yang bermasalah. Penambahan pernyataan echo pada bagian skrip yang tidak berperilaku seperti yang diharapkan dapat membantu memperjelas perintah yang sedang dieksekusi, serta nilai variabel yang dipanggil.&lt;/p&gt;

</description>
      <category>ramadhanbersamaredhat</category>
      <category>bagasumiabibiba</category>
    </item>
    <item>
      <title>Mengonfigurasi dan Mengamankan SSH</title>
      <dc:creator>FazaFauzannn</dc:creator>
      <pubDate>Thu, 21 Mar 2024 01:33:21 +0000</pubDate>
      <link>https://dev.to/fazafauzannn/mengonfigurasi-dan-mengamankan-ssh-l50</link>
      <guid>https://dev.to/fazafauzannn/mengonfigurasi-dan-mengamankan-ssh-l50</guid>
      <description>&lt;h2&gt;
  
  
  Mengakses Baris Perintah Jarak Jauh dengan SSH
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Apa itu open SSH?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;OpenSSH adalah sebuah program yang digunakan dalam sistem Red Hat Enterprise Linux untuk mengimplementasikan protokol Secure Shell, atau SSH. SSH memungkinkan komunikasi aman dan terenkripsi antara sistem-sistem bahkan saat berada di jaringan yang tidak aman.&lt;/p&gt;

&lt;p&gt;Dengan menggunakan perintah 'ssh', Anda dapat membuat koneksi yang aman ke sistem-sistem yang berada di lokasi yang jauh, mengotentikasi diri sebagai pengguna tertentu, dan memulai sesi shell interaktif pada sistem tersebut sebagai pengguna yang terotentikasi. Selain itu, Anda juga dapat menggunakan perintah 'ssh' untuk menjalankan perintah-perintah secara individual pada sistem jarak jauh tanpa perlu membuka sesi shell interaktif.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Berikut ini adalah contoh penggunaan shell aman&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Jika Anda ingin masuk ke server jarak jauh yang disebut 'remotehost' menggunakan nama pengguna yang sama dengan pengguna yang sedang aktif di komputer Anda saat ini. Ketika Anda menjalankan perintah 'ssh', sistem jarak jauh akan meminta Anda untuk memasukkan kata sandi pengguna tersebut sebagai bentuk autentikasi.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@host ~]$ ssh remotehost
user01@remotehost's password: redhat
...output omitted...
[user01@remotehost ~]$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Anda dapat menggunakan perintah exit untuk keluar dari sistem jarak jauh.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@remotehost ~]$ exit
logout
Connection to remotehost closed.
[user01@host ~]$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perintah ssh berikutnya akan memasukkan Anda ke dalam host jarak jauh server jarak jauh menggunakan nama pengguna pengguna 02. Sekali lagi, Anda diminta oleh sistem jarak jauh untuk mengautentikasi dengan kata sandi pengguna tersebut.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@host ~]$ ssh user02@remotehost
user02@remotehost's password: shadowman
...output omitted...
[user02@remotehost ~]$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perintah ssh ini akan menjalankan perintah hostname pada sistem jarak jauh remotehost sebagai pengguna user02 tanpa mengakses shell interaktif jarak jauh.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@host ~]$ ssh user02@remotehost hostname
user02@remotehost's password: shadowman
remotehost.lab.example.com
[user01@host ~]$
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Perhatikan bahwa perintah sebelumnya menampilkan output di terminal sistem lokal.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mengidentifikasi Pengguna Jarak Jauh&lt;/strong&gt;&lt;br&gt;
Perintah w menampilkan daftar pengguna yang sedang login ke komputer. Hal ini sangat berguna untuk menunjukkan pengguna mana yang login menggunakan ssh dari lokasi terpencil mana, dan apa yang mereka lakukan.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@host ~]$ ssh user01@remotehost
user01@remotehost's password: redhat
[user01@remotehost ~]$ w
 16:13:38 up 36 min,  1 user,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
user02   pts/0    172.25.250.10    16:13    7:30   0.01s  0.01s -bash
user01   pts/1    172.25.250.10    16:24    3.00s  0.01s  0.00s w
[user02@remotehost ~]$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Output sebelumnya menunjukkan bahwa user02pengguna telah masuk ke sistem pada terminal semu hari 0ini 16:13dari host dengan 172.25.250.10alamat IP, dan telah menganggur di prompt shell selama tujuh menit tiga puluh detik. Output sebelumnya juga menunjukkan bahwa user01pengguna telah login ke sistem pada terminal semu 1dan telah menganggur sejak tiga detik terakhir setelah menjalankan perintah w.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kunci host SSH&lt;/strong&gt;&lt;br&gt;
SSH menggunakan enkripsi kunci publik untuk mengamankan komunikasi antara klien dan server. Saat klien terhubung ke server SSH, server mengirimkan salinan kunci publiknya kepada klien untuk menyiapkan enkripsi komunikasi dan mengautentikasi server.&lt;/p&gt;

&lt;p&gt;Ketika pengguna menggunakan perintah 'ssh' untuk terhubung ke server SSH, perintah tersebut memeriksa apakah pengguna memiliki salinan kunci publik server di file host yang diketahui. Jika ada, 'ssh' akan membandingkan kunci yang diterima dengan kunci yang disimpan. Jika kunci tidak cocok, pengguna diminta untuk mengonfirmasi apakah ingin melanjutkan koneksi.&lt;/p&gt;

&lt;p&gt;Jika pengguna tidak memiliki salinan kunci publik, 'ssh' akan menanyakan apakah ingin tetap masuk. Jika disetujui, salinan kunci publik server akan disimpan untuk konfirmasi otomatis di masa mendatang.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Catatan&lt;br&gt;
: Anda dapat mengatur 'StrictHostKeyChecking' ke 'yes' untuk membatalkan koneksi jika kunci publik tidak cocok.&lt;br&gt;
&lt;/p&gt;


&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@host ~]$ ssh newhost
The authenticity of host 'remotehost (172.25.250.12)' can't be established.
ECDSA key fingerprint is SHA256:qaS0PToLrqlCO2XGklA0iY7CaP7aPKimerDoaUkv720.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'newhost,172.25.250.12' (ECDSA) to the list of known hosts.
user01@newhost's password: redhat
...output omitted...
[user01@newhost ~]$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Manajemen Kunci Host Dikenal SSH&lt;/strong&gt;&lt;br&gt;
Ketika kunci publik server berubah karena kegagalan hard drive atau diganti secara resmi, Anda harus mengedit file host yang dikenal untuk memperbarui entri dengan kunci publik baru. Ini memastikan koneksi tanpa kesalahan ke server yang diubah.&lt;/p&gt;

&lt;p&gt;Kunci publik server disimpan di '/etc/ssh/ssh_known_hosts' untuk sistem secara global, dan di setiap file '~/.ssh/known_hosts' untuk setiap klien SSH. Setiap kunci disimpan dalam satu baris, dengan bidang pertama berisi daftar nama host dan alamat IP yang berbagi kunci tersebut. Bidang kedua mencantumkan algoritma enkripsi, sedangkan bidang terakhir berisi kunci publik itu sendiri. Dengan mengedit file-file ini, Anda dapat memperbarui kunci publik yang telah berubah untuk memastikan koneksi yang sukses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@host ~]$ cat ~/.ssh/known_hosts
remotehost, 172.25.250.11 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBOsEi0e+FlaNT6jul8Ag5Nj+RViZl0yE2w6iYUr+1fPtOIF0EaOgFZ1LXM37VFTxdgFxHS 3D5WhnJikab+68zf8+w=
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setiap server SSH jarak jauh yang Anda sambungkan menyimpan kunci publiknya di /etc/sshdirektori dalam file dengan ekstensi .pub&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user01@remotehost ~]$ ls /etc/ssh/*key.pub
/etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ed25519_key.pub /etc/ssh/ssh_host_rsa_key.pub
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Mengonfigurasi Otentikasi Berbasis Kunci SSH
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Tujuan
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Otentikasi Berbasis Kunci SSH&lt;/strong&gt;&lt;br&gt;
Anda dapat mengonfigurasi server SSH untuk mengizinkan autentikasi tanpa kata sandi menggunakan autentikasi berbasis kunci. Ini melibatkan pembuatan sepasang file kunci kriptografi yang sesuai: kunci pribadi dan kunci publik. Kunci pribadi berfungsi sebagai kredensial autentikasi yang rahasia dan aman, sementara kunci publik disalin ke sistem yang ingin diakses oleh pengguna.&lt;/p&gt;

&lt;p&gt;Salinan kunci publik ditempatkan di akun pengguna di server. Saat mencoba login, server SSH menggunakan kunci publik untuk mengeluarkan tantangan yang hanya dapat dijawab dengan benar menggunakan kunci pribadi. Sebagai hasilnya, klien SSH dapat mengautentikasi login secara otomatis ke server menggunakan kunci pribadi yang unik. Ini memungkinkan akses yang aman tanpa memerlukan pengguna memasukkan kata sandi secara interaktif setiap saat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Menghasilkan Kunci SSH&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Untuk membuat kunci privat dan mencocokkan kunci publik untuk autentikasi, gunakan perintah ssh-keygen . Secara default, kunci pribadi dan publik Anda masing-masing disimpan di file ~/.ssh/id_rsadan ~/.ssh/id_rsa.pubfile Anda.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa): Enter
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase): Enter
Enter same passphrase again: Enter
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:vxutUNPio3QDCyvkYm1oIx35hmMrHpPKWFdIYu3HV+w user@host.lab.example.com
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|   .     .       |
|  o o     o      |
| . = o   o .     |
|  o + = S E .    |
| ..O o + * +     |
|.+% O . + B .    |
|=*oO . . + *     |
|++.     . +.     |
+----[SHA256]-----+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Jika Anda tidak menentukan frasa sandi saat menggunakan perintah ssh-keygen untuk membuat kunci pribadi, kunci yang dihasilkan tidak akan dilindungi. Artinya, siapa pun yang memiliki file kunci pribadi Anda dapat menggunakannya untuk otentikasi.&lt;/p&gt;

&lt;p&gt;Namun, jika Anda menyetel frasa sandi saat membuat kunci pribadi, Anda harus memasukkan frasa sandi tersebut setiap kali menggunakan kunci pribadi untuk otentikasi. Dengan demikian, Anda akan menggunakan frasa sandi kunci pribadi, bukan kata sandi pada host jarak jauh, untuk mengautentikasi.&lt;/p&gt;

&lt;p&gt;Untuk mengatasi pengulangan memasukkan frasa sandi, Anda dapat menggunakan program bantu bernama ssh-agent. ssh-agent dapat menyimpan frasa sandi kunci pribadi Anda sementara di memori pada awal sesi, memungkinkan otentikasi tanpa memasukkan frasa sandi secara berkali-kali.&lt;/p&gt;

&lt;p&gt;Contoh perintah ssh-keygen menunjukkan pembuatan kunci pribadi yang dilindungi dengan frasa sandi bersama dengan kunci publik.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ ssh-keygen -f .ssh/key-with-pass
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in .ssh/key-with-pass.
Your public key has been saved in .ssh/key-with-pass.pub.
The key fingerprint is:
SHA256:w3GGB7EyHUry4aOcNPKmhNKS7dl1YsMVLvFZJ77VxAo user@host.lab.example.com
The key's randomart image is:
+---[RSA 2048]----+
|    . + =.o ...  |
|     = B XEo o.  |
|  . o O X =....  |
| = = = B = o.    |
|= + * * S .      |
|.+ = o + .       |
|  + .            |
|                 |
|                 |
+----[SHA256]-----+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Opsi -f dalam perintah ssh-keygen digunakan untuk menentukan lokasi file di mana kunci disimpan. Dalam contoh sebelumnya, kunci privat dan kunci publik masing-masing disimpan dalam file /home/user/.ssh/key-with-pass dan /home/user/.ssh/key-with-pass.pub.&lt;/p&gt;

&lt;p&gt;Perlu diingat bahwa selama pembuatan pasangan kunci SSH berikutnya, kecuali jika nama file unik telah ditentukan, Anda akan diminta izin untuk menimpa file id_rsa dan id_rsa.pub yang sudah ada. Jika Anda menimpa file id_rsa dan id_rsa.pub, Anda harus memperbarui kunci publik lama dengan yang baru di semua server SSH yang telah menggunakan kunci publik lama Anda.&lt;/p&gt;

&lt;p&gt;Setelah kunci SSH dibuat, secara default kunci-kunci tersebut disimpan di direktori .ssh dalam direktori home pengguna. Mode izin yang disarankan adalah 600 untuk kunci privat dan 644 untuk kunci publik.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Berbagi Kunci Publik&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Sebelum Anda dapat menggunakan otentikasi berbasis kunci, kunci publik perlu disalin ke sistem tujuan. Perintah ssh-copy-id digunakan untuk melakukan ini dengan menyalin kunci publik dari pasangan kunci SSH ke sistem tujuan.&lt;/p&gt;

&lt;p&gt;Jika Anda menjalankan ssh-copy-id tanpa menentukan jalur ke file kunci publik, maka file default yang akan digunakan adalah /home/user/.ssh/id_rsa.pub.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ ssh-copy-id -i .ssh/key-with-pass.pub user@remotehost
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/home/user/.ssh/id_rsa.pub"
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@remotehost's password: redhat
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'user@remotehost'"
and check to make sure that only the key(s) you wanted were added.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Setelah kunci publik berhasil ditransfer ke sistem jarak jauh, Anda dapat mengautentikasi ke sistem tersebut menggunakan kunci pribadi yang sesuai saat melakukan masuk melalui SSH. Jika Anda tidak menentukan jalur ke file kunci pribadi saat menjalankan perintah ssh, maka secara default akan digunakan file /home/user/.ssh/id_rsa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[user@host ~]$ ssh -i .ssh/key-with-pass user@remotehost
Enter passphrase for key '.ssh/key-with-pass': redhatpass
...output omitted...
[user@remotehost ~]$ exit
logout
Connection to remotehost closed.
[user@host ~]$ 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Menyesuaikan Konfigurasi Layanan OpenSSH
&lt;/h2&gt;

&lt;h2&gt;
  
  
  Tujuan
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Mengonfigurasi Server OpenSSH&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Konfigurasi default server OpenSSH umumnya berfungsi dengan baik, namun, untuk memperkuat keamanan sistem, Anda mungkin ingin melakukan dua perubahan umum. Pertama, Anda mungkin ingin melarang login langsung ke akun root secara remote. Kedua, Anda mungkin ingin melarang autentikasi berbasis kata sandi dan beralih ke autentikasi berbasis kunci pribadi SSH.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Melarang Superuser Untuk Masuk Menggunakan SSH&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Nama pengguna root secara default hadir di setiap sistem Linux, yang berpotensi memudahkan penyerang karena mereka hanya perlu menebak kata sandi, bukan mencoba kombinasi nama pengguna dan kata sandi yang valid. Hal ini mengurangi kompleksitas bagi penyerang.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Pengguna rootmemiliki hak istimewa yang tidak dibatasi, sehingga komprominya dapat menyebabkan kerusakan maksimum pada sistem.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dari perspektif audit, mungkin sulit untuk melacak pengguna yang berwenang yang masuk sebagai root dan membuat perubahan. Jika pengguna harus masuk sebagai pengguna biasa dan beralih ke akun root, hal ini akan menghasilkan peristiwa log yang dapat digunakan untuk membantu memberikan pertanggungjawaban.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Server OpenSSH menggunakan pengaturan konfigurasi PermitRootLogin pada berkas konfigurasi /etc/ssh/sshd_config untuk mengizinkan atau melarang pengguna masuk ke sistem sebagai root.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PermitRootLogin yes

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dengan parameter PermitRootLogin ke ya, seperti yang ditetapkan secara default, orang diizinkan masuk sebagai root. Untuk mencegah hal ini, setel nilainya ke no. Atau, untuk mencegah autentikasi berbasis kata sandi tetapi mengizinkan autentikasi berbasis kunci privat untuk root, setel parameter PermitRootLogin ke tanpa kata sandi.&lt;/p&gt;

&lt;p&gt;Server SSH (sshd) harus dimuat ulang agar perubahan dapat diterapkan.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;[root@host ~]# systemctl reload sshd
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Melarang Otentikasi Berbasis Kata Sandi untuk SSH&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Mengizinkan hanya login berbasis kunci privat ke baris perintah jarak jauh memiliki berbagai keuntungan:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Penyerang tidak dapat menggunakan serangan menebak kata sandi untuk membobol akun yang dikenal pada sistem dari jarak jauh.&lt;/li&gt;
&lt;li&gt;Dengan kunci privat yang dilindungi frasa sandi, penyerang membutuhkan frasa sandi dan salinan kunci privat. Dengan kata sandi, penyerang hanya membutuhkan kata sandi.&lt;/li&gt;
&lt;li&gt;Dengan menggunakan kunci privat yang dilindungi kata sandi bersama dengan ssh-agent, kata sandi akan lebih jarang terekspos karena kata sandi tersebut lebih jarang dimasukkan, dan proses masuk menjadi lebih nyaman bagi pengguna.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Server OpenSSH menggunakan parameter PasswordAuthentication pada berkas konfigurasi /etc/ssh/sshd_config untuk mengontrol apakah pengguna dapat menggunakan autentikasi berbasis kata sandi untuk masuk ke sistem.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;PasswordAuthentication yes
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nilai default ya untuk parameter PasswordAuthentication pada berkas konfigurasi /etc/ssh/sshd_config menyebabkan server SSH mengizinkan pengguna menggunakan autentikasi berbasis kata sandi saat masuk. Nilai no untuk PasswordAuthentication mencegah pengguna menggunakan autentikasi berbasis kata sandi.&lt;/p&gt;

&lt;p&gt;Ingatlah bahwa setiap kali Anda mengubah berkas /etc/ssh/sshd_config, Anda harus memuat ulang layanan sshd agar perubahan diterapkan.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Penting&lt;br&gt;
Ingat, jika Anda mematikan autentikasi berbasis kata sandi untuk ssh, Anda harus memiliki cara untuk memastikan bahwa berkas ~/.ssh/authorized_keys milik pengguna di server jauh diisi dengan kunci publik mereka, sehingga mereka dapat masuk.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>ramadhanbersamaredhat</category>
      <category>naspadrasastrawberry</category>
      <category>bagasumiabibiba</category>
      <category>ramadhanberbagitakjil</category>
    </item>
  </channel>
</rss>
