Pada server linux bagaimana Anda menggunakan beberapa terminal melalui koneksi ssh tunggal?

15

Saya sering menemukan diri saya membuka beberapa koneksi ssh untuk melihat beberapa file log sekaligus tail -f.

Ini bukan masalah ketika saya di rumah karena saya menggunakan enkripsi kunci publik untuk login tanpa kata sandi. Namun, saya akan sering menggunakan komputer di universitas saya untuk melakukan ini sehingga saya tidak memiliki pilihan untuk menggunakan kunci pribadi saya. Itu mengganggu untuk memasukkan kata sandi saya 4 atau 5 kali untuk mendapatkan beberapa terminal windows.

Bagaimana saya bisa mendapatkan beberapa terminal melalui satu koneksi?

epochwolf
sumber

Jawaban:

38

Cukup gunakan layar GNU , ini bagus karena Anda dapat memulai sesi jarak jauh dan mengembalikannya jika koneksi Anda menurun. Ini tersedia sebagai paket untuk sebagian besar distribusi dan bahkan mungkin sudah diinstal pada sistem universitas Anda.

The pengguna akan memberikan semua yang Anda butuhkan untuk memulai, secara default semua perintah yang diawali oleh Ctrl+A. Misalnya untuk memunculkan bantuan pada layar, cukup tekan Ctrl+Alalu tekan?

saschabeaumont
sumber
Saya telah menjadi admin linux selama beberapa tahun dan menggunakan layar berkali-kali sehari.
Tidak ada server yang lengkap tanpa layar.
Gert M
2
Setelah menggunakan layar selama beberapa jam terakhir saya tidak percaya saya hidup tanpanya! Saya sudah menghabiskan 5 tahun Melakukannya Salah.
epochwolf
11

layar memungkinkan Anda untuk memiliki beberapa terminal dan lebih banyak (seperti kemampuan untuk melepaskan dan melampirkan kembali ke sesi Anda).

Beberapa catatan untuk membantu Anda:

Ctrl-a c   create
Ctrl-a d   detach
screen -r  reattach
Ctrl-a a   toggle
Ctrl-a "   list

Dan beberapa bacaan yang disarankan:

Philip Durbin
sumber
4

Lihatlah dua artikel berikut tentang berbagi koneksi SSH:

http://fermiparadox.wordpress.com/2008/06/19/ssh-connection-sharing/
http://protempore.net/~calvins/howto/ssh-connection-sharing/

Pada dasarnya, lakukan pencarian google di berbagi koneksi ssh dan Anda akan menemukan banyak artikel lain di dalamnya.

Evan
sumber
1
Menarik. Satu masalah adalah bahwa jika koneksi internet saya terputus saya tidak akan dapat menyambung kembali tanpa menghapus soket. Jika saya tidak dapat terhubung, bagaimana cara saya masuk ke server untuk menghapus soket?
epochwolf
Anda tidak perlu menghapus soket di server, itu hanya berbagi sisi klien. Jadi Anda menjalankan `ssh foo 'sekali dan itu menciptakan soket pada mesin yang sama Anda menjalankan perintah ssh foo. Server melihat banyak login pada ttys yang terpisah, jadi ia tidak mengetahui perbedaan dengan login terpisah "normal".
David Gardner
3

Mungkin, Anda dapat menggunakan penerusan X untuk membuka beberapa xterms jarak jauh pada desktop lokal Anda.

John Fouhy
sumber
Server tidak menginstal X11. Juga, tidak bisa diterapkan pada sistem windows yang saya tidak dapat menginstal X server.
epochwolf
Server Linux tidak perlu memiliki X11 untuk menjalankan aplikasi grafis yang muncul di desktop lokal Anda. Juga, Cygwin X-Server berfungsi dengan baik untuk menjalankan hal-hal seperti Firefox dari kotak Linux rumah saya (tanpa X berjalan pada kotak rumah saya) dan mereka muncul dengan baik di laptop Windows lokal saya.
shapr
2

Anda tidak memberikan alasan kuat mengapa Anda tidak dapat menggunakan kunci pribadi dari sistem lain. Hasilkan mereka per mesin dan tambahkan kunci yang berlaku ke otor_hosts

Tetap saja, gunakan layar.

ironfroggy
sumber
Apakah menggunakan kunci pribadi pada jumlah yang sesuai dengan komputer publik adalah ide yang bagus? Apalagi mengingat saya tidak memasukkan kata sandi pada kunci?
epochwolf
1
Anda tidak akan menggunakan kunci yang sama dengan yang Anda gunakan di tempat lain - Anda akan menghasilkan kunci baru (dengan frasa sandi) dan menambahkan kunci publiknya ke file otor_keys di server Anda. Beri nama seperti "portablekey" dan keluarkan dari otor_keys jika Anda pikir itu mungkin telah dikompromikan.
Neall
2

Anda mungkin juga ingin melihat byobu . Ini adalah versi layar yang disempurnakan dan saya percaya ini adalah proyek Ubuntu. Tetapi standar dengan Ubuntu 9,10 dan yang lebih baru.

Saya cenderung masih menggunakan Screen meskipun oleh kebiasaan tetapi ingin menyebutkan alternatif yang lebih baru ini.

Pengaruh 3d
sumber
1

Jika Anda menggunakannya untuk mengekor beberapa file, Anda mungkin juga tertarik dengan multitail .

Evan
sumber
Tautan menarik. Saya baru saja menyebutkan penggunaan saya yang paling umum. Saya juga perlu beralih antara vim dan bash untuk mencari jalan untuk hal-hal.
epochwolf
1

Salah satu fitur layar yang tidak disebutkan adalah untuk "melepaskan" layar dan itu akan terus menjalankan perintah apa pun yang Anda jalankan di set layar. Setelah layar terlepas, Anda dapat logout dan semuanya terus mengalir bahkan setelah log off. Saya akan memulai layar dan kemudian melakukan beberapa perintah c untuk membuat 'subscreens' baru. Saya dapat beralih di antara mereka dan memulai beberapa kompilasi yang berjalan lama atau pemrosesan data dan yakin bahwa koneksi VPN saya yang jelek tidak akan menyebabkan semuanya mati karenanya.

Setelah keluar, Anda dapat masuk kembali dan menggunakan 'layar -R' yang akan melampirkan Anda kembali ke layar layar yang ada.

Paul Leclerc
sumber
0

Untuk digunakan screendengan ssh, ketik

ssh -t <user>@<server> screen -r

( sumber ). man ssh:

-t Angkatan alokasi pseudo-terminal. Ini dapat digunakan untuk menjalankan program berbasis layar yang sewenang-wenang pada mesin jarak jauh, yang bisa sangat berguna, misalnya saat mengimplementasikan layanan menu. Opsi -t ganda memaksa alokasi tty, bahkan jika ssh tidak memiliki tty lokal.

Yaroslav Nikitenko
sumber