Trik Kecil SSH

Artikel ini telah menyusun praktik terbaik kami untuk menggunakan SSH secara lebih efisien. Dari situ Anda akan belajar caranya:

  • Tambahkan faktor kedua ke login SSH
  • Aman untuk menggunakan penerusan agen
  • Logout dari sesi SSH
  • Tetap Buka Terminal Permanen
  • Bagikan sesi terminal jarak jauh dengan teman (tanpa Zoom!)

Menambahkan faktor kedua ke SSH Anda


Faktor otentikasi kedua dapat ditambahkan ke koneksi SSH Anda dalam lima cara berbeda:

  1. Perbarui OpenSSH Anda dan gunakan kunci enkripsi. Pada bulan Februari 2020, dukungan untuk kunci enkripsi FIDO U2F (Universal Second Factor) ditambahkan ke OpenSSH. Ini adalah fitur baru yang hebat, tetapi ada nuansa: hanya klien dan server yang telah memutakhirkan ke OpenSSH versi 8.2 dan lebih tinggi yang dapat menggunakan kunci enkripsi, karena pembaruan Februari memperkenalkan jenis kunci baru untuk mereka. Dengan perintah, ssh –VAnda dapat memeriksa versi klien SSH, dan versi server dengan perintahnc [servername] 22

    Dua jenis kunci baru ditambahkan ke versi Februari - ecdsa-sk dan ed25519-sk (bersama dengan sertifikat yang sesuai). Untuk menghasilkan file kunci, cukup masukkan kunci enkripsi Anda dan jalankan perintah:

    $ ssh-keygen -t ecdsa-sk -f ~/.ssh/id_ecdsa_sk

    U2F . U2F — .

    , .

    - OpenSSH -sk-. U2F . - :

    $ ssh-keygen -t ecdsa-sk -O resident -f ~/.ssh/id_ecdsa_sk

    , , :

    $ ssh-add -K

    .
  2. PIV+PKCS11 Yubikey. SSHD . Yubico U2F+SSH PIV/PKCS11. FIDO U2F, , , .
  3. yubikey-agent ssh-. SSH Yubikeys. .
  4. Touch ID sekey. Sekey SSH , Mac’ Touch ID .
  5. Single Sign On SSH. . single sign on SSH — (MFA).

agent forwarding


Penerusan agen SHH memungkinkan host jarak jauh untuk mengakses agen SSH perangkat lokal Anda. Saat Anda menggunakan SSH dengan penerusan agen diaktifkan (biasanya melalui ssh -A), akan ada dua saluran dalam koneksi: sesi interaktif Anda dan saluran untuk penerusan agen. Melalui saluran ini, soket Unix yang dibuat oleh agen SSH lokal Anda terhubung ke host jarak jauh. Ini adalah metode yang berisiko, karena pengguna dengan akses root pada perangkat jarak jauh dapat mengakses agen SSH lokal Anda dan berpotensi menyamar sebagai Anda di jaringan. Menggunakan agen SSH standar dari kit Open SSH, Anda bahkan tidak tahu bahwa ini terjadi. Memiliki kunci U2F (atau Sekey) akan membantu Anda secara efektif memblokir segala upaya untuk menggunakan agen SSH Anda dari luar.

Bahkan dengan tindakan pencegahan ini, sebaiknya menggunakan penerusan agen sesedikit mungkin. Anda tidak boleh menggunakannya di setiap sesi - gunakan penerusan agen hanya jika Anda yakin akan perlunya sesi saat ini.

Keluar dari Sesi Gantung


Gangguan jaringan, perilaku program yang tidak terkontrol, atau urutan keluar yang memblokir input keyboard adalah semua kemungkinan penyebab pecahnya sesi SSH.

Ada beberapa cara untuk mengakhiri sesi yang macet:

  1. Secara otomatis keluar ketika jaringan terganggu. Di .ssh / config Anda, Anda perlu menambahkan yang berikut:

    ServerAliveInterval 5
    ServerAliveCountMax 1

    ssh akan mengirim gema ke host jarak jauh setiap ServerAliveInterval detik untuk memverifikasi koneksi. Jika lebih banyak gema ServerAliveCountMax tidak menerima respons, ssh akan mengakhiri koneksi dalam waktu habis dan keluar dari sesi.
  2. . ssh ~ () . ~. . ( .) ~? . , ~ , ~ .

? . IPv4 WiFi, IP- . SSH TCP , , , IP-, , SSH . IP-, . , TCP- . . , . IPv6 , . , .


Ada dua pendekatan berbeda tentang cara mempertahankan koneksi saat beralih di antara jaringan yang berbeda atau jika Anda ingin memutuskan koneksi untuk waktu yang singkat.

1. Gunakan Mosh atau Terminal Abadi

Jika Anda benar-benar membutuhkan koneksi yang tidak surut walaupun Anda berpindah antar jaringan, gunakan Mosh mobile shell. Ini adalah shell aman yang pertama kali menggunakan jabat tangan SSH dan kemudian beralih ke saluran terenkripsi sendiri selama sesi berlangsung. Jadi Mosh menciptakan saluran terpisah, sangat stabil dan aman yang mampu menahan gangguan Internet, mengubah alamat IP laptop Anda, pemadaman jaringan yang serius, dan banyak lagi, semua berkat keajaiban koneksi UDP, serta Protokol sinkronisasi Mosh.

Untuk menggunakan Mosh, Anda harus menginstalnya pada klien dan server, dan buka port 60000-61000 untuk lalu lintas UPD yang terputus ke host jarak jauh Anda. Di masa depan, itu akan cukup untuk digunakan untuk koneksi mosh user@server.

Mosh beroperasi pada tingkat layar dan penekanan tombol, yang memberikan sejumlah keuntungan dibandingkan meneruskan aliran biner dari input dan output standar antara klien dan server SSH. Jika kita hanya perlu menyinkronkan layar dan penekanan tombol, maka nanti untuk memulihkan koneksi yang terputus menjadi lebih mudah. Sementara SSH akan melakukan buffer dan mengirim semua yang terjadi, Mosh hanya perlu melakukan buffer penekanan tombol dan menyinkronkan frame terakhir dari jendela terminal dengan klien.

2. Gunakan tmux

Jika Anda ingin "datang dan pergi kapan saja" dan simpan sesi terminal pada host jarak jauh, gunakan terminal multiplexer tmux . Saya suka tmux dan menggunakannya terus-menerus. Jika koneksi SSH Anda terputus, maka cukup untuk menyambung kembali dan masuk untuk kembali ke sesi tmux Anda tmux attach. Selain itu, ia memiliki fitur yang luar biasa seperti tab dan panel intra-terminal, mirip dengan tab di terminal iOS, dan kemampuan untuk berbagi terminal dengan yang lain.

Beberapa orang suka memperindah tmux mereka dengan Byobu, sebuah paket yang sangat meningkatkan kegunaan tmux dan menambahkan banyak pintasan keyboard untuknya. Byobu dikirimkan bersama Ubuntu dan mudah dipasang di Mac melalui Homebrew.

Berbagi sesi terminal jarak jauh dengan teman


Kadang-kadang ketika men-debug masalah kompleks pada server Anda, Anda mungkin ingin berbagi sesi SSH dengan seseorang yang tidak berada di ruangan yang sama dengan Anda. tmux sangat cocok untuk tugas seperti itu! Cukup hanya dengan mengambil beberapa langkah:

  1. Pastikan tmux ada di host bastion Anda, atau di beberapa server yang akan Anda gunakan.
  2. Anda berdua harus terhubung melalui SSH ke perangkat menggunakan satu akun.
  3. Salah satu dari Anda harus memulai tmux untuk memulai sesi tmux.
  4. Yang lain harus menjalankan tmux attach
  5. Voila! Anda memiliki terminal bersama.

Jika Anda ingin sesi tmux multi-pengguna yang lebih canggih, cobalah tmate, garpu tmux yang sangat menyederhanakan sesi terminal bersama.

All Articles