Bagaimana cara menggunakan SSH (perintah ssh & rsync)?

44

Bagaimana saya bisa SSH dengan server jarak jauh sehingga saya dapat menelusuri file dan mengeditnya? Saya memiliki nama pengguna dan kata sandi untuk digunakan.

el_pup_le
sumber

Jawaban:

49

SSH datang secara default di semua versi Ubuntu sehingga Anda menghemat karena harus menginstalnya (+1 karena sudah ada di sana;))

Kecuali tentu saja dalam kasus di mana Anda menginginkan server SSH untuk server Ubuntu Anda. Dalam hal ini Anda akan melakukannya

sudo apt-get install openssh-server 

yang seharusnya membuat komputer / server Anda siap menjadi server ssh.

Untuk menggunakannya cukup mudah:

ssh USER@SITEmisalnya jika nama pengguna saya adalah cyrex dan situsnya adalah ubuntu.com maka Anda akan melakukan ini:

ssh [email protected]

Sekarang katakanlah Anda ingin menyalin file yang dipanggil bubblegum.txtdari komputer Anda ke situs ubuntu Anda dan ingin meninggalkan file itu di /var/wwwfolder di situs ubuntu. Anda dapat melakukan ini (dengan asumsi pengguna Anda memiliki cukup izin di situs ubuntu) dengan menggunakan SSH's Brother, SCP (Yang juga datang secara default di Ubuntu):

scp bubblegum.txt [email protected]:/var/www 

Perhatikan :antara USER @ SITE dan folder tempat Anda ingin menyalinnya. Ini adalah yang memisahkan kedua elemen.

Sekarang katakanlah Anda mengunggah beberapa file besar dengan scp dan kemudian yang terburuk terjadi, dunia meledak. Bagaimana Anda bisa terus mengunggah file itu ke server. Kemudian Anda mendapatkan kakak SCP, rsync (Hadir secara default di Ubuntu). Dalam banyak hal scp dan rsync melakukan hal yang sama tetapi di sini ada beberapa perbedaan besar di antara mereka:

  • rsync dapat mengunggah sebagian file yang tersisa dari rsync atau scp setelah pemutusan atau dominasi dunia.
  • rsync dapat menunjukkan progres yang jauh lebih baik daripada scp
  • rsync dapat mengoptimalkan unggahan sedemikian rupa sehingga Anda benar-benar dapat menghemat detik atau menit pada unggahan. Itu juga menunjukkan di akhir unggahan berapa banyak yang telah Anda simpan.

Bagaimanapun, dalam kasus scp tidak dapat mengunggah seluruh file ini adalah di mana rsync masuk untuk menyelamatkan. (Terima kasih kepada Marco Ceppi untuk tipnya. Pilih komentarnya jika Anda suka kucing .. dan / atau anjing)

Katakanlah Anda melakukan unggahan yang disebutkan di atas dari scp dan mencapai 60%. Bagaimana Anda bisa melanjutkan 60% itu tanpa kehilangan waktu Anda untuk diunggah. Anda akan melakukan ini:

rsync --progress --partial bubblegum.txt [email protected]:/var/www  

Ini memberitahu rsync untuk menunjukkan kemajuan dengan cara yang dapat dibaca manusia dengan --progressbendera. Itu juga memberitahu rsync untuk memeriksa dan melanjutkan dari mana file bubblegum.txt sampai dengan --partialflag. Anda juga dapat menyederhanakan jumlah untuk menulis dengan parameter -P yang sama dengan --progress dan --partial, sehingga di atas akan terlihat seperti ini:

rsync -P bubblegum.txt [email protected]:/var/www  

Anda bahkan dapat CTRL+ Cmengunggah dan melanjutkannya dengan melakukan perintah dari rsync di atas. Sangat keren untuk memiliki kemampuan untuk melanjutkan sesuatu kapan saja berapapun jumlahnya.

Untuk info lebih lanjut tentang rsync yang datang secara default dengan Ubuntu Anda dapat mengetikkan perintah terminal berikut:

man rsync  
info rsync  
rsync --help

Sekarang untuk menentukan port untuk SSH. Untuk menentukannya, Anda dapat melakukannya seperti ini:

ssh [email protected] -p PORT. Misalnya: ssh [email protected] -p 1234untuk memberitahukannya agar menggunakan Port 1234 untuk layanan SSH. Ini harus dikonfigurasi di server terlebih dahulu agar dapat berfungsi.

Untuk mengkonfigurasinya cukup buka di server file ssh_config seperti ini: nano /etc/ssh/ssh_configdan ubah baris yang mengatakan # port 22ke port lain. Ingat juga untuk menghapus komentar dari baris itu. Seharusnya terlihat seperti ini: port 1234pada contoh di atas.

Sekarang hanya restart layanan ssh di server dan Anda selesai. Untuk memulai kembali layanan, lakukan ini:

sudo restart ssh

atau

sudo /etc/init.d/ssh restart

CATATAN - Anda juga dapat menggunakan SSH dari alat GUI seperti filezillayang menawarkan opsi untuk menggunakan ssh bukan ftp. ssh juga dapat diakses dari dalam menu Ubuntu:

masukkan deskripsi gambar di sini

yang memberikan akses ke beberapa opsi termasuk berbagi Windows, SSH dan FTP :

masukkan deskripsi gambar di sini

Untuk informasi lebih lanjut tentang SSH Anda dapat menggunakan salah satu dari perintah berikut di konsol di kotak Ubuntu Anda:

man ssh  
info ssh  
ssh --help
Luis Alvarado
sumber
Apa yang Anda maksud dengan maaf?
Luis Alvarado
23

Jika Anda ingin menjelajahi server melalui Nautilus seperti yang Anda lakukan dengan file di komputer lokal Anda:

  1. Buka Nautilus ("Folder Rumah")
  2. Pergi ke "File" -> "Connect to Server"

    Sambungkan ke server

  3. Pilih "SSH" di bawah "Jenis Layanan"

  4. Masukkan alamat IP atau domain di bawah "Server"

    Pilih SSH

  5. Tambahkan nama pengguna Anda dan centang "Tambahkan bookmark" jika Anda ingin lokasi disimpan ke bookmark Anda.

Folder seharusnya terbuka tepat untuk Anda.

jamesadney
sumber
Di Kubuntu kita dapat melakukan hal yang sama dengan Krusader .
Adobe
6

Anda dapat menggunakan sshfsuntuk memasang direktori jarak jauh ke sistem file lokal Anda.

Lihat https://help.ubuntu.com/community/SSHFS :

Penggunaan Baris Perintah

Sekarang, dengan anggapan bahwa Anda memiliki server SSH berjalan pada mesin jarak jauh, cukup jalankan perintah SSHFS untuk memasang direktori jarak jauh. Dalam contoh ini, direktori jarak jauh adalah / proyek pada host jarak jauh. Mount point lokal adalah ~ / far_projects.

mkdir ~/far_projects
sshfs -o idmap=user $USER@far:/projects ~/far_projects

Untuk melepas,

fusermount -u ~/far_projects

Untuk menambahkannya ke / etc / fstab Anda,

sshfs#$USER@far:/projects /home/$USER/far_projects fuse defaults,idmap=user 0 0

Perhatikan bahwa Anda harus mengubah $ USER ke nama login Anda saat mengedit fstab, tetapi tidak perlu saat mengetik perintah (shell melakukannya untuk Anda dalam kasus itu).

Stacey Richards
sumber
4

Dengan asumsi server ssh sudah diatur, buka terminal dan ketik:

ssh username@hostname

Anda akan dimintai kata sandi; cukup masukkan saja. Jika Anda memerlukan nomor port, tambahkan -p PORTNUM.

Dang Khoa
sumber
2

Jika Anda dapat menggunakan Vim, Pico, atau lainnya, Anda dapat menggunakan terminal:

ssh [email protected]

Masukkan kata sandi Anda, dan Anda masuk. Dari sana, itu seperti terminal biasa, kecuali Anda tidak memiliki GUI.

Catatan, Anda dapat menambahkan opsi '-X', dan jika server Anda memiliki server X yang dikonfigurasi, Anda dapat menjalankan program GUI. Cukup ketik nama mereka jika Anda menambahkan -X dan itu akan meluncurkan jendela GUI.

Sekarang, Anda mungkin ingin mengatur login tanpa kata sandi. Jika Anda belum memiliki kunci, ketik ssh-keygendan tekan enter untuk semua default. Lalu lakukan ssh-copy-id [email protected]. Setelah selesai, cukup ketik ssh [email protected]dan Anda tidak perlu memasukkan kata sandi!

Jika nama pengguna Anda sama dengan nama pengguna Laptop Anda, Anda tidak perlu MYUSER@. Anda bisa melakukannya ssh mysite.com. Anda juga dapat menggunakan -l MYUSERopsi sebagai gantiMYUSER@

Jika Anda menginginkan GUI, Nautilus dapat melakukan ini. File ->Hubungkan ke Server ->[pilih 'SSH', lalu isi detail login] -> Sambung.

Jika Anda hanya ingin menyalin satu file, gunakan scp [salinan aman].
scp [email protected]:path/to/file.dat ./

Ini menyalin file "~ / path / ke / file.dat" ke direktori Anda saat ini. Catatan, jika Anda tidak memiliki garis miring atau tilde setelah :itu, itu akan bertindak seperti Anda berada di direktori home Anda [ ~/]. Jika Anda ingin mengunggah, scp ./local_file.dat [email protected]: Itu akan memasukkannya ke direktori home Anda.

Mat
sumber
0

ssh -X -C user@host nautilus --no-desktop untuk masuk dalam mode gui :)

morgie
sumber
Nautilus lokal hanya dapat terhubung ke berbagi SSH. Tidak perlu menjalankan Nautilus dari jarak jauh. Saya sebenarnya tidak akan merekomendasikan melakukan itu. Saran kreatif, tetapi tetap -1
Jo-Erlend Schinstad