Suatu hari saya sedang menguji cara menjaga izin file tetap utuh saat menyalin file atau direktori ke beberapa lokasi dan sistem. Ketika saya ingin memeriksa izin file pada sistem jarak jauh, saya harus masuk ke sistem itu melalui SSH dan memeriksa atributnya. Proses log-in dan log-out dari sistem jarak jauh beberapa kali agak mengganggu saya. Saya pikir akan lebih baik jika saya dapat menjalankan perintah pada sistem Linux jarak jauh melalui SSH.
Untungnya, saya menemukan solusi untuk melakukannya setelah melihat ke halaman manual ssh
memerintah. Jika Anda pernah bertanya-tanya bagaimana menjalankan perintah atau skrip pada sistem jarak jauh dari sistem lokal Anda sendiri tanpa harus masuk ke sistem jarak jauh itu, berikut adalah cara melakukannya.
Jalankan perintah pada sistem Linux jarak jauh melalui SSH
Cara umum untuk menjalankan perintah atau skrip pada sistem jarak jauh melalui SSH dari sistem lokal adalah:
$ ssh <[email protected]_Address-or-Doman_name> <Command-or-Script>
Izinkan saya untuk menunjukkan beberapa contoh.
Jalankan satu perintah pada sistem jarak jauh melalui SSH
Katakanlah Anda ingin menemukan detail Kernel dari sistem Linux jarak jauh Anda. Untuk melakukannya, cukup jalankan:
$ ssh [email protected] uname -a
Di sini,
sk
adalah nama pengguna sistem jarak jauh saya,192.168.225.22
adalah alamat IP dari sistem jarak jauh,- Dan
"uname -a"
adalah perintah yang ingin saya jalankan pada sistem jarak jauh dari sistem lokal saya.
Contoh keluaran:
Jalankan Perintah Pada Sistem Linux Jarak Jauh Melalui SSH
Lihat? Saya sebenarnya belum masuk ke sistem jarak jauh, tetapi menjalankan uname
perintah pada sistem jarak jauh melalui SSH dan menampilkan output di Terminal sistem lokal saya.
Anda juga dapat menentukan perintah dalam tanda kutip seperti di bawah ini.
$ ssh [email protected] "uname -a"
Atau,
$ ssh [email protected] 'uname -a'
Jika Anda telah mengubah port default protokol SSH , sebutkan saja menggunakan -p
parameter seperti di bawah ini.
$ ssh -p 2200 [email protected] uname -a
Jalankan beberapa perintah pada sistem jarak jauh melalui SSH
Anda juga dapat menjalankan beberapa perintah pada remote dengan menentukannya dalam tanda kutip seperti di bawah ini.
$ ssh [email protected] "uname -r && lsb_release -a"
Atau,
$ ssh [email protected] "uname -r ; lsb_release -a"
Perintah di atas akan menampilkan versi Kernel dan detail distribusi dari server Ubuntu saya.
Contoh keluaran:
Jalankan beberapa perintah pada sistem jarak jauh melalui SSH di Linux
Sebagai salah satu pembaca kami yang disebutkan di bagian komentar di bawah, Anda harus menentukan beberapa perintah dalam tanda kutip. Jika Anda tidak menggunakan tanda kutip, perintah pertama akan dijalankan pada sistem jarak jauh dan perintah kedua akan dievaluasi hanya pada mesin lokal. Seluruh perintah dalam tanda kutip akan diproses dari jarak jauh sebagaimana dimaksud.
Catatan: Ketahui perbedaan antara “&&”
dan “;”
operator antar perintah:
“&&”
operator mengeksekusi perintah kedua hanya jika perintah pertama berhasil.
Contoh:
sudo apt-get update && sudo apt-get upgrade
Dalam kasus di atas, perintah kedua (sudo apt-get upgrade
) akan dijalankan jika perintah pertama berhasil. Jika tidak, itu tidak akan berjalan.
“;”
operator menjalankan perintah kedua meskipun perintah pertama berhasil atau gagal.
Contoh:
sudo apt-get update ; sudo apt-get upgrade
Dalam kasus di atas, perintah kedua (sudo apt-get upgrade
) akan dijalankan meskipun perintah pertama gagal.
Jalankan perintah dengan hak istimewa "sudo" pada sistem jarak jauh melalui SSH
Beberapa perintah memerlukan "sudo"
hak istimewa untuk dijalankan. Misalnya, perintah berikut akan menginstal Vim di sistem jarak jauh saya.
$ ssh -t [email protected] sudo apt install apache2
Contoh keluaran:
Jalankan perintah dengan hak "sudo" pada sistem jarak jauh melalui SSH
Apakah kamu menyadari? Saya telah menggunakan -t
tandai pada perintah di atas. Kami perlu menyebutkan -t
. ini flag untuk memaksa alokasi terminal semu. Ini dapat digunakan untuk menjalankan program berbasis layar sewenang-wenang pada mesin jarak jauh, yang bisa sangat berguna, mis. saat menerapkan layanan menu.
Juga, saya telah memasukkan kata sandi dua kali . Pertama kali saya memasukkan kata sandi pengguna jarak jauh untuk mengakses sistem jarak jauh melalui SSH dari sistem lokal saya dan kata sandi kedua diperlukan untuk memberikan izin sudo kepada pengguna jarak jauh untuk menginstal aplikasi (yaitu apache2 dalam kasus ini) pada sistem jarak jauh .
Mari kita periksa apakah layanan Apache berjalan menggunakan perintah:
$ ssh -t [email protected] sudo systemctl status apache2 [email protected]'s password: [sudo] password for sk: ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Drop-In: /lib/systemd/system/apache2.service.d └─apache2-systemd.conf Active: active (running) since Thu 2019-12-19 11:08:03 UTC; 52s ago Main PID: 5251 (apache2) Tasks: 55 (limit: 2318) CGroup: /system.slice/apache2.service ├─5251 /usr/sbin/apache2 -k start ├─5253 /usr/sbin/apache2 -k start └─5254 /usr/sbin/apache2 -k start Dec 19 11:08:03 ubuntuserver systemd[1]: Starting The Apache HTTP Server... Dec 19 11:08:03 ubuntuserver apachectl[5227]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 2409:4072:51f:a1b6:a00:27ff:f Dec 19 11:08:03 ubuntuserver systemd[1]: Started The Apache HTTP Server.
Demikian pula, kita dapat menjalankan perintah atau skrip apa pun pada sistem jarak jauh melalui SSH dari sistem lokal.
Jalankan skrip lokal pada sistem jarak jauh melalui SSH
Biarkan kami membuat skrip sederhana di sistem lokal kami untuk menampilkan semua informasi yang tersedia tentang nama distribusi sistem jarak jauh Anda, manajemen paket, dan detail basis, dll.
$ vi system_information.sh
Tambahkan baris berikut:
#!/bin/bash #Name: Display System Details #Owner: OSTechNIx #---------------------------- echo /etc/*_ver* /etc/*-rel*; cat /etc/*_ver* /etc/*-rel*
Tekan ESC
kunci dan ketik :wq
untuk menyimpan file dan keluar.
Sekarang jalankan skrip ini di sistem jarak jauh Anda melalui SSH menggunakan perintah:
$ ssh [email protected] 'bash -s' < system_information.sh
Contoh keluaran:
[email protected]'s password: /etc/debian_version /etc/lsb-release /etc/os-release buster/sid DISTRIB_ID=Ubuntu DISTRIB_RELEASE=18.04 DISTRIB_CODENAME=bionic DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS" NAME="Ubuntu" VERSION="18.04.2 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.2 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic
Jika Anda tidak menentukan 'bash -s'
pada perintah di atas, Anda akan mendapatkan detail sistem jarak jauh tetapi terminal Pseudo tidak akan dialokasikan.
Simpan keluaran dari sistem jarak jauh ke sistem lokal
Ini dapat berguna jika Anda ingin membagikan output dari perintah yang Anda jalankan di sistem jarak jauh melalui SSH dengan tim dukungan atau kolega Anda.
Perintah berikut akan menjalankan "du -ah"
pada sistem jarak jauh Anda melalui SSH dan simpan hasilnya di diskusage.txt
file di sistem lokal Anda.
$ ssh [email protected] du -ah > diskusage.txt
Anda kemudian dapat menganalisis detail penggunaan disk dengan melihat diskusage.txt
file menggunakan cat
perintah atau pemirsa teks.
$ cat diskusage.txt 4.0K ./.profile 4.0K ./.gnupg/private-keys-v1.d 8.0K ./.gnupg 76K ./data/image.jpg 128K ./data/file.pdf 20K ./data/text.docx 5.9M ./data/audio.mp3 6.1M ./data 0 ./.sudo_as_admin_successful 4.0K ./pacman?inline=false 4.0K ./.bash_logout 4.0K ./.wget-hsts 4.0K ./.bash_history 0 ./.cache/motd.legal-displayed 4.0K ./.cache 4.0K ./deb-pacman_1.0-0.deb 4.0K ./.bashrc 6.2M .
Konfigurasikan otentikasi berbasis Kunci SSH untuk menghindari pengetikan kata sandi
Jika Anda sering menjalankan perintah pada sistem jarak jauh, Anda mungkin ingin mengonfigurasi otentikasi berbasis kunci SSH untuk melewati pengetikan kata sandi setiap saat. Selengkapnya dapat ditemukan di tautan berikut.
- Cara Mengonfigurasi Otentikasi Berbasis Kunci SSH Di Linux
Bacaan yang disarankan:
- Cara Melanjutkan File yang Ditransfer Sebagian Melalui SSH Menggunakan Rsync
- Cara Menjalankan Perintah Tunggal Pada Beberapa Sistem Jarak Jauh Sekaligus
- DSH – Jalankan Perintah Linux Pada Banyak Host Sekaligus
- Cara Membuat Alias SSH Di Linux
- SSLH – Bagikan Port yang Sama Untuk HTTPS Dan SSH
- ScanSSH – Server SSH Cepat Dan Pemindai Proxy Terbuka
- Cara SSH Ke Direktori Tertentu Di Linux
- Izinkan atau Tolak Akses SSH ke Pengguna atau Grup Tertentu di Linux
- Cara Menghentikan Sesi SSH Dari Putusnya Sambungan Di Linux
- Cara Mengaktifkan SSH Di FreeBSD
- Tips Vim - Mengedit File Jarak Jauh Dengan Vim Di Linux
Semoga membantu.