Cara mengelola beberapa sesi ssh dengan mudah di Mac OS X

9

Di pekerjaan mendatang saya, saya akan menangani banyak server dengan akses SSH. Ini akan seperti ~ 100-120 host, dengan nama pengguna yang berbeda di sebagian besar host, dan saya cukup yakin saya tidak akan mengingat setiap nama domain host, belum lagi nama pengguna yang ada di setiap host.

Apakah ada alat untuk Mac OS X (Lion lebih disukai) yang akan memungkinkan saya untuk menentukan sesi untuk setiap host (dalam sesi yang saya maksud nama pengguna dan beberapa opsi ssh), tampilkan daftar sesi tersebut dan hubungkan pada klik / pilih secara otomatis?

kars7e
sumber

Jawaban:

6

Ada dua cara saya mengelola, atau telah melihat orang mengelola, data SSH:

Baik, baris perintah, teks biasa, file ssh_config .

Buat file bernama configinside ~/.ssh. Anda dapat menentukan parameter global dengan menempatkannya di atas deklarasi host apa pun. Ketika saya mulai menggunakan MacPorts , saya harus secara eksplisit mendefinisikan SSH Private Key default untuk digunakan secara otomatis saat menghubungkan, sehingga baris pertama dari file yang saya masukkan;

IdentityFile ~/.ssh/id_rsa

Saat Anda menetapkan aturan khusus untuk host (dan Anda bahkan dapat menggunakan * sebagai wildcard), tampilannya seperti ini:

Host prod-*
  User jason
  Port 2222
  LocalForward 5901 localhost:5901
  IdentityFile ~/.ssh/work-id_rsa

Lalu ketika saya menjalankan ssh prod-scriptmisalnya, semua aturan lainnya diterapkan secara otomatis.


Banyak orang yang tidak ingin mengelola semua barang mereka secara manual dengan cara yang rumit dengan cepat menemukan JellyfiSSH . ( Mac App Store Link . Orang yang sama juga menjadi sangat kesal ketika berhenti diunduh secara gratis.)

JellyfiSSH memberi Anda akses GUI ke hampir semua yang dapat ditentukan dalam baris perintah atau file ssh_config. JellyfiSSH hanyalah aplikasi penyimpanan konfigurasi untuk keperluan organisasi, karena itu menghasilkan perintah berdasarkan dari opsi yang Anda atur dan setelah mengklik connect, membuka jendela terminal baru dengan semua opsi Anda ditentukan pada baris perintah. JellyfiSSH bukan aplikasi terminal sendiri.

Jason Salaz
sumber
JellyfiSSH sepertinya aplikasi yang saya cari. Terima kasih!
kars7e
FYI: man ssh_configdari Terminal akan memberikan informasi file konfigurasi klien OpenSSH SSH yang tersedia di instalasi sistem Anda saat ini. Yang, pada saat komentar, lebih baru daripada tautan pengembang di atas.
l --marc l
5

Anda dapat membuat file seperti Example.commandkemudian membuatnya dapat dieksekusi: chmod 755 Example.commanddan klik dua kali file tersebut untuk membuka koneksi:

#!/bin/sh

exec /usr/bin/ssh [email protected]

exit 0

Jika Anda hanya ingin dapat terhubung dari baris perintah menggunakan alias (kata yang mudah diingat), Anda dapat mengaturnya di ~ / .ssh / config

Host foo
HostName some.really.long.hostname.here.com
Port 22
User bigfun

Kemudian Anda dapat terhubung menggunakan host foo

ssh foo

Atau Anda bisa membuat fungsi di file konfigurasi shell Anda (~ / .bashrc atau ~ / .zshenv):

s1 () {
    ssh -v [email protected]
}

maka Anda dapat terhubung example.comhanya dengan mengetik s1di baris perintah, dan itu akan menggunakan verbosity level 1.

Terakhir, Anda bisa menggunakan ssh auto-completion, tetapi sintaks untuk itu akan tergantung pada shell pilihan Anda. Google cepat untuk 'ssh autocomplete YourShellHere' akan menampilkan beberapa contoh.

Gunakan frasa sandi dan Keychain OS X

Yang paling penting, IMO, adalah mengatur ssh agar berfungsi dengan frasa sandi. OS X memiliki integrasi gantungan kunci yang hebat sejak Leopard.

ssh-keygen -t dsa -f ~/.ssh/id_dsa -C "[email protected]"

cat ~/.ssh/id_dsa.pub | ssh [email protected] 'cat – >> ~/.ssh/authorized_keys'

(Sumber: http://www.paosborne.com/blog/?p=369 .)

Kemudian ketika Anda ssh ke mesin baru, gantungan kunci OS X akan meminta Anda untuk frasa sandi ssh Anda

Lihat juga http://www.dribin.org/dave/blog/archives/2007/11/28/ssh_agent_leopard/ untuk deskripsi yang lebih lengkap. Artikel ini lebih tua, tetapi Lion bekerja dengan cara yang sama.

Jangan lupa Dropbox

Jika Anda masuk ke beberapa mesin, Anda dapat menyinkronkan ~/.ssh/configfile Anda melalui Dropbox. Saya menyimpan milik saya ~/Dropbox/etc/ssh/config.txtdan kemudian saya lakukan:

cd ~/.ssh
ln -s ../Dropbox/etc/ssh/config.txt config

Saya melakukan hal yang sama dengan ~ / .zshenv saya:

cd
ln -s Dropbox/etc/zshenv.sh .zshenv

Bahkan, saya meletakkan semua skrip shell saya di ~ / Dropbox / bin / dan menambahkannya ke $ PATH saya juga, hanya untuk menutupi semua basis saya.

TJ Luoma
sumber
Dropbox adalah tempat yang bagus untuk menyimpan skrip shell yang tidak ingin saya kelola di git / on GitHub. Terima kasih telah memicu momen 'aha' itu, TJ!
Jason Salaz
-2

Anda dapat mencoba aplikasi vSSH untuk Mac OS X ( berbasis Putty ).

  • Kelola daftar koneksi (host, port, nama pengguna, kata sandi, kunci, dan banyak pengaturan lainnya)
  • Bisa hampir semua yang Putty bisa
  • Antarmuka multi-tab multi-jendela
  • Dukungan makro (Anda menggunakan skrip sebagai item menu untuk akses cepat)
  • Sinkronisasi iCloud (koneksi, makro dan kunci) dengan aplikasi kontrol vSSH dan SSH untuk iOS

Tersedia di Mac AppStore .

siapa saya
sumber
Selamat Datang di Tanya Berbeda! Harap baca pusat bantuan tentang promosi diri dan sertakan penafian jika Anda adalah pembuat produk dalam jawaban Anda.
grg
1
Bagaimana ini sebenarnya memungkinkan daftar sesi yang dapat diklik? Jika Anda dapat mengedit beberapa pemasaran generik dan memfokuskan ini pada pertanyaan yang tepat, kemungkinan akan mendapatkan reaksi yang lebih baik.
bmike