GNU/Linux >> Belajar Linux >  >> Linux

10 Contoh Putty PLINK untuk Mengotomatiskan Perintah Linux Jarak Jauh dari File Batch Windows

Plink adalah singkatan dari Putty Link.

Plink adalah utilitas baris perintah pendamping untuk Putty.

Pada tingkat yang sangat tinggi:

  • Gunakan Putty untuk sesi SSH interaktif dari Server Windows ke Linux
  • Gunakan Plink untuk sesi SSH non-interaktif untuk menjalankan perintah linux jarak jauh untuk tujuan otomatisasi dari Windows Anda


Dalam tutorial ini, kita akan membahas hal berikut:

  1. Luncurkan plink dari Command Prompt
  2. Sesi SSH Plink Interaktif
  3. Plink Sesi SSH Non-Interaktif untuk menjalankan Perintah Jarak Jauh
  4. Jalankan Beberapa Perintah Linux dari File Windows
  5. Tentukan Protokol Koneksi
  6. Tentukan Kata Sandi SSH sebagai Argumen Plink
  7. Masalah Debug Plink
  8. Tentukan Port SSH sebagai Opsi Plink
  9. Plink File Log untuk Koneksi SSH
  10. Tentukan Protokol SSH (SSH-1 atau SSH-2)
  11. Tentukan Protokol IP (IPv4 atau IPv6)
  12. Gunakan File Kunci Pribadi untuk Otentikasi dengan Plink
  13. Opsi Aktifkan dan Nonaktifkan Tambahan untuk Plink SSH
  14. Sidik Jari dan HostKey dengan Plink
  15. Pilihan Plink -batch untuk File Batch Windows

Pertama, unduh plink yang dapat dieksekusi dari sini.

Jika Anda belum menginstal Putty di mesin Anda, pastikan Anda juga mengunduh Putty yang dapat dieksekusi bersama dengan plink.

Jika Anda memiliki laptop Windows 32-bit, pastikan Anda mengunduh plink versi 32-bit. Jika tidak, unduh versi 64-bit.

1. Luncurkan plink dari Command Prompt

Anda tidak bisa hanya mengklik dua kali pada plink.exe untuk meluncurkannya. Karena ini adalah utilitas baris perintah saja (Tanpa GUI), Anda harus terlebih dahulu meluncurkan prompt perintah Windows Anda.

Untuk ini, klik menu mulai di windows Anda, dan ketik "cmd.exe" di kotak pencarian dan tekan enter, ini akan meluncurkan prompt perintah Windows.

Juga, tergantung di mana Anda mengunduh plink.exe, Anda mungkin harus memodifikasi variabel PATH Windows yang sesuai.

Buka jendela “System properties” Anda, klik “Environment Variables”, pilih Path variable, dan tambahkan direktori tempat plink.exe berada di sini.

Atau, Anda bisa mengatur variabel PATH Anda seperti yang ditunjukkan di bawah ini. Pada contoh berikut, saya telah mengunduh plink.exe ke direktori C:\Downloads.

set PATH=%PATH%;C:\Downloads

Selanjutnya, ketik plink di command prompt, ini akan menampilkan berbagai opsi yang tersedia.

2. Sesi SSH Plink Interaktif

Berikut ini adalah sintaks dasar untuk plink:

plink [options] connection [command]

Dalam sintaks di atas:

  • opsi – Anda dapat melewati berbagai opsi untuk diplink. Ini opsional.
  • koneksi – Ini akan memiliki informasi koneksi dari server Linux yang ingin Anda hubungkan. Berbagai metode koneksi dijelaskan dalam contoh di bawah ini.
  • command – Ini adalah perintah yang harus dijalankan di server Linux jarak jauh. Ini opsional.

Meskipun perintahnya opsional, ketika Anda tidak memberikannya, itu akan menampilkan sesi interaktif mentah, yang akan memiliki banyak karakter yang tidak dapat dicetak dan tidak dapat dibaca di layar. Seperti yang telah dijelaskan sebelumnya, plink tidak dimaksudkan untuk digunakan sebagai sesi interaktif. Gunakan dempul untuk sesi interaktif.

Untuk saat ini, mari kita lihat berbagai metode untuk menggunakan koneksi.

Pertama, Anda bisa memberikan alamat ip server jarak jauh. Ini kemudian akan meminta nama pengguna dan kata sandi untuk masuk.

C:\>plink 192.168.101.1
login as: root
[email protected]'s password:

Atau, Anda juga dapat menggunakan nama pengguna menggunakan simbol @ seperti yang ditunjukkan di bawah ini. Ini hanya akan meminta kata sandi, karena kami telah menentukan nama pengguna.

C:\>plink [email protected]
Using username "root".
[email protected]'s password:

Anda juga dapat memberikan nama pengguna menggunakan opsi -l seperti yang ditunjukkan di bawah ini:

C:\>plink 192.168.101.1 -l mysql

Anda juga dapat menggunakan nama sesi dempul yang ada. Dalam contoh ini, saya menggunakan sesi dempul tersimpan yang ada yang disebut "devdb". Ini adalah cara penggunaan yang disarankan, karena Anda dapat membawa semua informasi konfigurasi dari Putty ke sini untuk sesi “devdb” khusus ini.

C:\>plink devdb
Using username "root".
[email protected]'s password:

-load berikut ini persis sama dengan di atas.

C:\>plink -load devdb
Using username "root".
[email protected]'s password:

Seperti yang Anda lihat di bawah, setelah Anda masuk, Anda akan mendapatkan prompt perintah. Namun, melakukan apa pun di sini akan menampilkan beberapa karakter yang tidak ramah pengguna.

C:\>plink devdb
Using username "root".
[email protected]'s password:
?]0;root@devdb:~[root@devdb ~]#
?]0;root@devdb:~[root@devdb ~]#
?]0;root@devdb:~[root@devdb ~]# ?[Kls -altr
total 326432
drwx------.  2 root root      4096 Jan 23  2016 ?[01;34m.ssh?[0m
drwxr-xr-x.  2 root root      4096 May  9  2016 ?[01;3Documents?[0m
drwxr-xr-x.  2 root root      4096 May  8 12:41 ?[01;3Downloads?[0m
?[m?]0;root@devdb:~[root@devdb ~]#

Sekali lagi, untuk sesi SSH interaktif, gunakan Putty.

Pada catatan terkait, bahkan jika Anda telah menggunakan PuTTY untuk sementara waktu, Anda mungkin menemukan beberapa tips dari sini bermanfaat:10 Tip dan Trik PuTTY Luar Biasa yang Mungkin Tidak Anda Ketahui

3. Plink Sesi SSH Non-Interaktif untuk menjalankan Perintah Jarak Jauh

Menggunakan plink, dari windows, Anda dapat menjalankan perintah di server Linux tanpa interaksi pengguna dan hanya menampilkan output.

Untuk ini, berikan perintah sebagai argumen terakhir ke plink seperti yang ditunjukkan di bawah ini.

Pada contoh berikut, ia akan menjalankan perintah “crontab -l” pada server jarak jauh dan menampilkan outputnya.

C:\>plink [email protected] crontab -l
no crontab for root

Jika Anda ingin menjalankan beberapa perintah, maka kelompokkan menjadi satu seperti yang ditunjukkan di bawah ini.

C:\>plink [email protected] (hostname;crontab -l)
devdb.thegeekstuff.com
no crontab for root

Berikut ini akan mengeksekusi shellscript db-backup.sh di server Linux jarak jauh. Namun, Anda memulai ini dari mesin Windows Anda.

plink [email protected] /root/bin/db-backup.sh

Beberapa hal yang perlu diingat:

  • Jika perintah di atas meminta kata sandi, dan jika Anda tidak ingin hal itu terjadi, Anda harus mengatur otentikasi kunci publik-swasta dengan tepat sehingga server Linux jarak jauh tidak meminta kata sandi.
  • Anda juga dapat memberikan sandi sebagai opsi baris perintah untuk di-plink seperti yang ditunjukkan pada salah satu contoh di bawah ini.
  • Juga, jika di atas menampilkan pesan kesalahan tentang protokol yang tidak valid, maka Anda harus meneruskan protokol yang sesuai seperti yang ditunjukkan pada contoh berikutnya.

4. Jalankan Beberapa Perintah Linux dari File Windows

Alih-alih menentukan semua perintah yang akan dieksekusi pada server Linux jarak jauh di baris perintah plink, Anda juga dapat meletakkannya dalam file teks dan menentukan file tersebut sebagai parameter untuk plink.

Misalnya, buat file berikut bernama commands.txt di Windows Anda.

C:\>type commands.txt
hostname
service mysql stop
yum -y install httpd
service mysql start
service httpd start
crontab -l

Sekarang untuk menjalankan semua perintah di atas pada server Linux jarak jauh satu per satu secara berurutan, jalankan perintah plink berikut di laptop Windows Anda.

C:\>plink [email protected] -m C:\commands.txt

5. Tentukan Protokol Koneksi

Plink mengizinkan protokol berikut:SSH, Telnet, Remote Login (rlogin), Raw, Serial Connection

Yang paling populer dan default adalah SSH. Gunakan -ssh seperti yang ditunjukkan di bawah ini.

C:\>plink -ssh [email protected]

Untuk Telnet:

C:\>plink -telnet [email protected]

Untuk Login Jarak Jauh menggunakan rlogin:

C:\>plink -rlogin [email protected]

Untuk Mentah:

C:\>plink -raw [email protected]
SSH-2.0-OpenSSH_5.3

Jika Anda mencoba untuk menentukan protokol tertentu, dan jika Anda mendapatkan kesalahan “FATAL ERROR:Network error:Connection reject”, itu berarti server jarak jauh tidak mendukung protokol yang ditentukan.

Jika Anda tidak ingin menentukan protokol pada baris perintah:

  • Anda dapat menggunakan sesi Putty tersimpan yang sudah memiliki protokol yang ditentukan untuk sesi tertentu.
  • Atau, Anda dapat menggunakan variabel env Windows yang disebut PLINK_PROTOCOL dan mengatur nilainya, yang akan digunakan oleh plink.

6. Tentukan Kata Sandi SSH sebagai Argumen Plink

Jika Anda tidak memiliki pengaturan otentikasi berbasis kunci, maka Anda dapat meneruskan kata sandi sebagai parameter di baris perintah. Tak perlu dikatakan bahwa metode ini tidak disarankan.

Ini akan terhubung ke server sebagai root menggunakan kata sandi yang ditentukan oleh opsi -pw, dan menjalankan semua perintah Linux yang diberikan dan menampilkan output pada prompt perintah Windows Anda.

C:\>plink [email protected] -pw SecretRootPwd (date;hostname;ls -l)

Tentu saja, metode yang mudah adalah dengan menggunakan sesi dempul yang disimpan (Misalnya, devdb) daripada menentukan nama pengguna dan alamat ip seperti yang ditunjukkan di bawah ini.

C:\>plink devdb -pw SecretRootPwd (date;hostname;ls -l)

7. Masalah Debug Plink

Pertama, pastikan Anda memiliki plink versi terbaru. Gunakan opsi -V (huruf besar V) seperti yang ditunjukkan di bawah ini. Rilis stabil saat ini adalah 0,69

C:\>plink -V
plink: Release 0.69
Build platform: 64-bit Windows
Compiler: Visual Studio 2015 / MSVC++ 14.0 (_MSC_VER=1900)
Source commit: b1829b81b5c0d12dcc91f6b50b0b4d83c3df6a8e

Selanjutnya, gunakan opsi -v (huruf kecil v) seperti yang ditunjukkan di bawah ini untuk keluaran yang lebih verbose.

C:\>plink -v devdb service httpd restart
Connecting to 192.168.101.1 port 22
We claim version: SSH-2.0-PuTTY_Release_0.69
Server version: SSH-2.0-OpenSSH_5.3
We believe remote version has SSH-2 channel request bug
Using SSH protocol version 2
Doing Diffie-Hellman group exchange
Doing Diffie-Hellman key exchange with hash SHA-256
Server also has ssh-dss host key, but we don't know it
Host key fingerprint is:
ssh-rsa 2048 2f:d2:c1:7f:db:a1:16:21:d2:f4:31:f9:ae:96:be:89
Initialised AES-256 SDCTR client->server encryption
Initialised HMAC-SHA1 client->server MAC algorithm
Initialised AES-256 SDCTR server->client encryption
Initialised HMAC-SHA1 server->client MAC algorithm
Using username "root".
Using SSPI from SECUR32.DLL
Attempting GSSAPI authentication
GSSAPI authentication request refused
Sent password
Access granted
Opening session as main channel
Opened main channel
Started a shell/command
..

Server sent command exit status 0
Disconnected: All channels closed

8. Tentukan Port SSH sebagai Opsi Plink

Secara default untuk SSH, itu akan terhubung ke port 22. Tapi, di server Linux Anda jika SSH dikonfigurasi untuk berjalan di port yang berbeda, maka gunakan opsi -P di plink untuk menentukan port.

Pada contoh berikut, plink akan terhubung ke server Linux jarak jauh pada port 25.

C:\>plink [email protected] -P 25 crontab -l

Saat Anda menggunakan sesi Putty yang disimpan dan opsi -P, alih-alih menggunakan port dari sesi yang disimpan, itu akan menggunakan Port yang diberikan.

C:\>plink devdb -P 25 crontab -l

9. File Log Plink untuk Koneksi SSH

Untuk protokol SSH di Plink, ada beberapa opsi logging yang berguna.

Opsi –sshlog berikut akan menyimpan log dalam file yang diberikan (sshlog.txt).

C:\>plink devdb -sshlog sshlog.txt (date;hostname;ls -l)

Ini adalah sebagian isi dari keluaran sshlog.txt

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2017.05.11 11:40:57 =~=~=~=~=~=~=~=~=~=~=~=
Event Log: Writing new session log (SSH packets mode) to file: sshlog.txt
Event Log: Connecting to 192.168.101.1 port 22
Event Log: We claim version: SSH-2.0-PuTTY_Release_0.69
Event Log: Server version: SSH-2.0-OpenSSH_5.3
Event Log: We believe remote version has SSH-2 channel request bug
Event Log: Using SSH protocol version 2
Outgoing packet #0x0, type 20 / 0x14 (SSH2_MSG_KEXINIT)
  00000000  ed 8e ff c9 d3 67 cf 95 0e 8f 1a 4d 6d 65 6f 25  .....g.....Mmeo%
  00000010  00 00 00 f0 63 75 72 76 65 32 35 35 31 39 2d 73  ....curve25519-s
......

Outgoing packet #0xc, type 96 / 0x60 (SSH2_MSG_CHANNEL_EOF)
  00000000  00 00 00 00                                      ....
Outgoing packet #0xd, type 97 / 0x61 (SSH2_MSG_CHANNEL_CLOSE)
  00000000  00 00 00 00                                      ....
Event Log: Disconnected: All channels closed

Untuk log yang lebih detail, gunakan opsi -sshrawlog. Harap dicatat bahwa ukuran file ini akan lebih besar dari yang di atas, karena ini akan menyimpan lebih banyak informasi dalam file log.

Juga, ini akan memakan waktu lebih lama untuk dieksekusi daripada perintah di atas, karena opsi sshrawlog mengumpulkan lebih banyak informasi log daripada opsi sshlog biasa.

C:\>plink devdb -sshrawlog sshrawlog.txt (date;hostname;ls -l)

10. Tentukan Protokol SSH (SSH-1 atau SSH-2)

Secara default, ini akan menggunakan protokol SSH-2, yang juga dapat ditentukan menggunakan opsi -2 seperti yang ditunjukkan di bawah ini.

C:\>plink devdb -2 (hostname;ls -l)
devdb.thegeekstuff.com
total 326380

Untuk protokol SSH-1, gunakan opsi -1 seperti yang ditunjukkan di bawah ini. Jika server Anda tidak mendukungnya, Anda akan mendapatkan error berikut.

C:\>plink devdb -pw -1 (hostname;ls -l)
FATAL ERROR: SSH protocol version 1 required by our configuration but not provided by server

11. Tentukan Protokol IP (IPv4 atau IPv6)

Secara default, ini akan menggunakan IPv4, yang juga dapat ditentukan menggunakan opsi -4 seperti yang ditunjukkan di bawah ini.

C:\>plink devdb -4 (hostname;ls -l)

Untuk menggunakan IPv6, gunakan opsi-6 seperti yang ditunjukkan di bawah ini.

C:\>plink devdb -6 (hostname;ls -l)

12. Gunakan File Kunci Pribadi untuk Otentikasi dengan Plink

Gunakan opsi -i untuk menentukan lokasi file kunci pribadi yang harus digunakan untuk otentikasi.

Pada contoh berikut, ia akan menggunakan file devdb.ppk dari direktori C:\Downloads.

C:\>plink -i "C:\Downloads\devdb.ppk" [email protected] hostname

Catatan:Anda akan mendapatkan "Server menolak kunci kami", jika kunci yang diberikan tidak dikonfigurasi dengan benar untuk digunakan dengan Server Linux Anda.

Jika file kunci tidak ditemukan (misalnya, ketika Anda memberikan nama direktori yang salah), Anda akan mendapatkan kesalahan berikut:

C:\>plink -i "D:\Data\devdb.ppk" [email protected] hostname
Unable to use key file "C:\Users\ramesh\Downloads\devdb.ppk" (unable to open file)
[email protected]'s password: 

Jika Anda menentukan Kunci yang formatnya tidak sesuai, Anda akan mendapatkan pesan kesalahan berikut.

C:\>plink -i "C:\Downloads\devdb.key" [email protected] hostname
Unable to use key file "C:\Downloads\devdb.key" (OpenSSH SSH-2 private key (old PEM format))

13. Opsi Aktifkan dan Nonaktifkan Tambahan untuk Plink SSH

Anda juga dapat menggunakan opsi SSH plink berikut:

  • -X untuk mengaktifkan penerusan X11
  • -X untuk menonaktifkan penerusan X11
  • -A untuk mengaktifkan penerusan agen
  • -a untuk menonaktifkan penerusan agen
  • -t untuk mengaktifkan alokasi pty
  • -T untuk menonaktifkan alokasi pty
  • -noagent untuk menonaktifkan penggunaan Kontes
  • -agent untuk mengaktifkan penggunaan Kontes
  • -C untuk mengaktifkan kompresi

14. Sidik Jari dan HostKey dengan Plink

Gunakan opsi -pgpfp yang akan menampilkan detail sidik jari PGP untuk Putty. Biasanya Anda dapat menggunakan ini untuk membangun kepercayaan dari plink.exe yang dapat dieksekusi ke program lain atau dapat dijalankan yang Anda coba sambungkan.

C:\>plink -pgpfp
PuTTY Master Key as of 2015 (RSA, 4096-bit):
  440D E3B5 B7A1 CA85 B3CC  1718 AB58 5DC6 0467 6F7C

Original PuTTY Master Key (RSA, 1024-bit):
  8F 15 97 DA 25 30 AB 0D  88 D1 92 54 11 CF 0C 4C
Original PuTTY Master Key (DSA, 1024-bit):
  313C 3E76 4B74 C2C5 F2AE  83A8 4F5E 6DF5 6A93 B34E

Juga, Anda dapat menggunakan hostkey di plink untuk terhubung ke server jauh menggunakan opsi -hostkey.

C:\>plink devdb -hostkey aa:dd:b1:f1:f8:00:4c:36:63:ec:cf:92:16:e6:df:26 hostname

15. Opsi Plink -batch untuk File Batch Windows

Jika Anda menjalankan plink di dalam file batch Windows, maka Anda disarankan untuk menggunakan opsi -batch.

C:>plink -batch devdb [complex-linux-command]

Pada contoh di atas, jika perintah kompleks-linux gagal, atau meminta input dari pengguna, atau hang, dll, maka skrip Batch Windows Anda tidak akan menunggu. Sebaliknya, plink hanya akan mengabaikan perintah, dan skrip batch akan gagal.

Ini mungkin yang Anda harapkan terjadi alih-alih pekerjaan file batch windows Anda hanya menunggu atau menggantung.

Jadi, gunakan opsi -batch di plink saat Anda menulis skrip batch Windows menggunakan plink.


Linux
  1. Perintah SCP Linux – Cara Transfer File SSH dari Jarak Jauh ke Lokal

  2. Cara Remote Desktop Dari Windows Ke Desktop Linux Menggunakan XRDP

  3. Terhubung ke Linux dari Windows dengan menggunakan Putty

  1. Bagaimana cara menggunakan rsync dari PC Windows ke server Linux jarak jauh?

  2. Salinan persis file dari NTFS ke NTFS lain menggunakan Linux

  3. scp dari Linux jarak jauh ke Windows lokal dengan spasi di jalur lokal

  1. Mengakses Sistem Osx Jarak Jauh Dari Osx, Linux, Windows?

  2. Linux menemukan perintah

  3. Jalankan perintah di beberapa server linux dari windows