GNU/Linux >> Belajar Linux >  >> Linux

Perintah SSH

Secure Shell (SSH) adalah protokol jaringan kriptografi yang digunakan untuk koneksi terenkripsi antara klien dan server. Klien ssh membuat koneksi aman ke server SSH pada mesin jarak jauh. Koneksi terenkripsi dapat digunakan untuk menjalankan perintah di server, tunneling X11, penerusan porta, dan banyak lagi.

Ada sejumlah klien SSH yang tersedia, baik gratis maupun komersial, dengan OpenSSH menjadi klien yang paling banyak digunakan. Ini tersedia di semua platform utama, termasuk Linux, OpenBSD, Windows, dan macOS.

Artikel ini menjelaskan cara menggunakan klien baris perintah OpenSSH (ssh ) untuk masuk ke mesin jarak jauh dan menjalankan perintah atau melakukan operasi lain.

Menginstal Klien OpenSSH #

Program klien OpenSSH disebut ssh dan dapat dipanggil dari terminal. Paket klien OpenSSH juga menyediakan utilitas SSH lain seperti scp dan sftp yang dipasang di samping ssh perintah.

Menginstal Klien OpenSSH di Linux #

Klien OpenSSH sudah diinstal sebelumnya pada sebagian besar distribusi Linux secara default. Jika sistem Anda tidak menginstal klien ssh, Anda dapat menginstalnya menggunakan manajer paket distribusi Anda.

Menginstal OpenSSH di Ubuntu dan Debian #

sudo apt updatesudo apt install openssh-client

Menginstal OpenSSH di CentOS dan Fedora #

sudo dnf install openssh-clients

Menginstal Klien OpenSSH di Windows 10 #

Sebagian besar pengguna Windows menggunakan Putty untuk terhubung ke mesin jarak jauh melalui SSH. Namun, versi terbaru Windows 10 menyertakan klien dan server OpenSSH. Kedua paket dapat diinstal melalui GUI atau PowerShell.

Untuk menemukan nama yang tepat dari paket OpenSSH, ketik perintah berikut:

Get-WindowsCapability -Online | ? Name -like 'OpenSSH*'

Perintah harus mengembalikan sesuatu seperti ini:

Name  : OpenSSH.Client~~~~0.0.1.0
State : NotPresent
Name  : OpenSSH.Server~~~~0.0.1.0
State : NotPresent

Setelah Anda mengetahui nama paket, instal dengan menjalankan:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0

Jika berhasil, hasilnya akan terlihat seperti ini:

Path          :
Online        : True
RestartNeeded : False

Menginstal Klien OpenSSH di macOS #

macOS dikirimkan dengan klien OpenSSH yang diinstal secara default.

Cara Menggunakan ssh Perintah #

Persyaratan berikut harus dipenuhi untuk dapat masuk ke mesin jarak jauh melalui SSH:

  • Server SSH harus dijalankan pada mesin jarak jauh.
  • Port SSH harus terbuka di firewall mesin jarak jauh.
  • Anda harus mengetahui nama pengguna dan sandi akun jarak jauh. Akun harus memiliki hak istimewa yang tepat untuk login jarak jauh.

Sintaks dasar ssh perintahnya adalah sebagai berikut:

ssh [OPTIONS] [USER@]:HOST

Untuk menggunakan ssh perintah, buka Terminal atau PowerShell Anda dan ketik ssh diikuti dengan nama host jarak jauh:

ssh ssh.linuxize.com

Saat Anda terhubung ke mesin jarak jauh melalui SSH untuk pertama kalinya, Anda akan melihat pesan seperti di bawah ini.

The authenticity of host 'ssh.linuxize.com (192.168.121.111)' can't be established.
ECDSA key fingerprint is SHA256:Vybt22mVXuNuB5unE++yowF7lgA/9/2bLSiO3qmYWBY.
Are you sure you want to continue connecting (yes/no)?

Setiap host memiliki sidik jari unik yang disimpan di ~/.ssh/known_hosts berkas.

Ketik yes untuk menyimpan sidik jari jarak jauh, dan Anda akan diminta memasukkan sandi.

Warning: Permanently added 'ssh.linuxize.com' (ECDSA) to the list of known hosts.

[email protected]'s password:

Setelah Anda memasukkan kata sandi, Anda akan masuk ke mesin jarak jauh.

Ketika nama pengguna tidak diberikan, ssh perintah menggunakan nama login sistem saat ini.

Untuk masuk sebagai pengguna yang berbeda, tentukan nama pengguna dan host dalam format berikut:

ssh username@hostname

Nama pengguna juga dapat ditentukan dengan -l pilihan:

ssh -l username hostname

Secara default, ketika tidak ada port yang diberikan, klien SSH akan mencoba terhubung ke server jauh pada port 22. Pada beberapa server, administrator mengubah port SSH default untuk menambahkan lapisan keamanan ekstra ke server dengan mengurangi risiko otomatis serangan.

Untuk menghubungkan pada port non-default, gunakan -p opsi untuk menentukan port:

ssh -p 5522 username@hostname

Jika Anda mengalami masalah otentikasi atau koneksi, gunakan -v opsi untuk memberi tahu ssh untuk mencetak pesan debug:

ssh -v username@hostname

Untuk meningkatkan level verbositas, gunakan -vv atau -vvv .

ssh perintah menerima sejumlah opsi.

Untuk daftar lengkap semua opsi, baca ssh halaman manual dengan mengetik man ssh di terminal Anda.

File Konfigurasi SSH #

Jika Anda terhubung ke beberapa sistem jarak jauh melalui SSH setiap hari, Anda akan menemukan bahwa mengingat semua alamat IP jarak jauh, nama pengguna yang berbeda, port non-standar, dan berbagai opsi baris perintah sulit, jika bukan tidak mungkin.

Klien OpenSSH membaca opsi yang diatur dalam file konfigurasi per pengguna (~/.ssh/config ). Dalam file ini, Anda dapat menyimpan opsi SSH yang berbeda untuk setiap mesin jarak jauh yang Anda sambungkan.

Contoh konfigurasi SSH ditunjukkan di bawah ini:

Host dev
    HostName dev.linuxize.com
    User mike
    Port 4422

Saat Anda memanggil klien ssh dengan mengetikkan ssh dev , perintah akan membaca ~/.ssh/config file dan gunakan detail koneksi yang ditentukan untuk host dev. Dalam contoh ini, ssh dev setara dengan berikut ini:

ssh -p 4422 [email protected]

Untuk informasi lebih lanjut, periksa artikel tentang file konfigurasi SSH.

Otentikasi Kunci Publik #

Protokol SSH mendukung berbagai mekanisme otentikasi.

Mekanisme otentikasi berbasis kunci publik memungkinkan Anda untuk masuk ke server jauh tanpa harus mengetikkan kata sandi Anda.

Metode ini bekerja dengan menghasilkan sepasang kunci kriptografi yang digunakan untuk otentikasi. Kunci pribadi disimpan di perangkat klien, dan kunci publik ditransfer ke setiap server jauh yang ingin Anda masuki. Server jarak jauh harus dikonfigurasi untuk menerima otentikasi kunci.

Jika Anda belum memiliki pasangan kunci SSH di mesin lokal Anda, Anda dapat membuatnya dengan mengetik:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Anda akan diminta untuk mengetikkan kata sandi yang aman. Apakah Anda ingin menggunakan frasa sandi, terserah Anda.

Setelah Anda memiliki pasangan kunci, salin kunci publik ke server jauh:

ssh-copy-id username@hostname

Masukkan kata sandi pengguna jarak jauh, dan kunci publik akan ditambahkan ke authorized_keys pengguna jarak jauh berkas.

Setelah kunci diunggah, Anda dapat masuk ke server jarak jauh tanpa dimintai kata sandi.

Dengan menyetel autentikasi berbasis kunci, Anda dapat menyederhanakan proses login dan meningkatkan keamanan server secara keseluruhan.

Penerusan Port #

SSH tunneling atau SSH port forwarding adalah metode untuk membuat koneksi SSH terenkripsi antara klien dan mesin server yang melaluinya port layanan dapat direlai.

Penerusan SSH berguna untuk mengangkut data jaringan layanan yang menggunakan protokol tidak terenkripsi, seperti VNC atau FTP, mengakses konten yang dibatasi secara geografis, atau melewati firewall perantara. Pada dasarnya, Anda dapat meneruskan port TCP apa pun dan menyalurkan lalu lintas melalui koneksi SSH yang aman.

Ada tiga jenis penerusan port SSH:

Penerusan Port Lokal #

Penerusan port lokal memungkinkan Anda meneruskan koneksi dari host klien ke host server SSH dan kemudian ke port host tujuan.

Untuk membuat penerusan port lokal, teruskan -L pilihan ke ssh klien:

ssh -L [LOCAL_IP:]LOCAL_PORT:DESTINATION_HOST:DESTINATION_PORT -N -f username@hostname

Opsi -f memberitahu ssh perintah untuk dijalankan di latar belakang dan -N untuk tidak menjalankan perintah jarak jauh.

Penerusan Port Jarak Jauh #

Penerusan port jarak jauh adalah kebalikan dari penerusan port lokal. Ini meneruskan port dari host server ke host klien dan kemudian ke port host tujuan.

-R opsi memberitahu ssh untuk membuat penerusan port jarak jauh:

ssh -R [REMOTE:]REMOTE_PORT:DESTINATION:DESTINATION_PORT -N -f username@hostname

Penerusan Port Dinamis #

Penerusan port dinamis membuat server proxy SOCKS yang memungkinkan komunikasi di berbagai port.

Untuk membuat penerusan port dinamis (SOCKS) lewati -D opsi untuk klien ssh:

ssh -D [LOCAL_IP:]LOCAL_PORT  -N -f username@hostname

Untuk informasi lebih detail dan petunjuk langkah demi langkah, lihat artikel tentang Cara Mengatur SSH Tunneling (Port Forwarding).

Kesimpulan #

Untuk terhubung ke server jauh melalui SSH, gunakan ssh perintah diikuti dengan nama pengguna dan nama host jarak jauh (ssh username@hostname ).

Mengetahui cara menggunakan ssh perintah sangat penting untuk mengelola server jarak jauh.

Jika Anda memiliki pertanyaan, silakan tinggalkan komentar di bawah.


Linux
  1. Ssh Menyebabkan Loop Berhenti?

  2. Ssh Ke Beberapa Host Dan Jalankan Perintah?

  3. Perintah mv Linux

  1. linux mengeksekusi perintah dari jarak jauh

  2. SSH - Cara memasukkan perintah -t di file ~/.ssh/config

  3. Server relai SSH dengan OpenSSH

  1. Cara Menemukan Koneksi SSH Aktif di Linux

  2. Ssh – Membatasi Pengguna Ssh/scp/sftp ke Direktori?

  3. Melakukan perintah yang berjalan lama di ssh