Bagaimana saya mengatur nautilus untuk menggunakan koneksi ssh yang dibuat oleh skrip harapan?

2

Untuk mengotomatiskan koneksi ssh, saya menulis skrip menggunakan ekspektasi, yang berfungsi dengan baik. Namun, saya ingin menggunakan skrip ini di koneksi nautilus ke fungsi server. Ide saya adalah memasukkan skrip ekspektasi ini ke file .ssh / config karena nautilus dapat menggunakan koneksi yang terinci di sana, tetapi saya tidak tahu caranya. Sayangnya, saya tidak bisa menyalin kunci RSA ke server. Ini adalah koneksi multihop, dan saya tidak bisa menulis ke server pertama. Server pertama ini hanya meminta kata sandi dan mesin yang dapat saya hubungkan. Jadi, kata sandinya sebenarnya bukan masalah, karena bisa juga disediakan oleh nautilus. Bantuan apa pun dihargai, terima kasih!

Daniel Förster
sumber

Jawaban:

1

Anda tidak dapat menggunakan kata sandi di ssh_config. Tetapi Anda mungkin menggunakan penerusan porta (jika diizinkan di kotak lompat):

SSHPASS=password sshpass -e ssh -L 2222:remotehost:22 user@jumpbox

lalu

ssh -p 2222 localhost

akan membawa Anda langsung ke host jarak jauh. Anda dapat memasukkannya ke dalam ssh_config, seperti:

Host remote-forwarded
  Hostname localhost
  Port 2222

dan kemudian hubungkan seperti

ssh remote-forwarded

Cara serupa akan bekerja di nautilus.

Penerusan port dilarang di kotak lompat

Dalam hal ini akan menjadi lebih rumit. Anda perlu menggunakan perintah proxy untuk mengatur penerusan porta langsung dari host jarak jauh. Konfigurasi Anda akan lebih lama:

Host remote-forwarded
  Hostname localhost
  Port 2222
Host jumpbox
  Hostname jumpbox-host
Host remote
  Hostname remote-host
  ProxyCommand ssh -W %h:%p jumpbox
  LocalForward 2222 localhost:22

Kalau tidak, itu harus bekerja dengan cara yang sama, pertama

SSHPASS=password sshpass -e ssh remote

dan kemudian langsung ke host lain:

ssh remote-forwarded
Jakuje
sumber
Terima kasih! Sayangnya saya memiliki dua masalah: sshpass tidak memiliki opsi -L, jadi saya mengganti sshpass dengan ssh, apakah itu oke? Dan "ssh -p 2222 localhost" memberi saya kesalahan berikut: "ssh: terhubung ke host localhost port 2222: Sambungan ditolak" Apakah saya perlu membuka port 2222? Saya baru dalam hal ini, maaf telah bertanya.
Daniel Förster
Iya nih. Saya lupa sintaksis Anda lagi. Tetapi meskipun begitu Anda tidak harus menulis expectskrip, tetapi Anda mungkin menggunakan sshpassuntuk "membawa Anda" ke server pertama. Sunting: Berikan coba perintah pertama dengan logging verbose ( -vvv). Penerusan port mungkin tidak diizinkan.
Jakuje
Ok, terima kasih, saya kira ini akan berhasil. Namun saya menyadari sekarang bahwa penerusan port dilarang oleh jumpbox.
Daniel Förster
Saya mengubah jawaban untuk kasus ini dengan melarang port forwarding di jumbox. Tapi saya tidak mengujinya sehingga mungkin masih ada kesalahan. Beri tahu saya jika itu berhasil untuk Anda.
Jakuje
Besar! Saya melihat file di nautilus. Entri .ssh / config Anda "Host remote" berhasil ketika dimasukkan dalam nautilus terhubung ke dialog server. Namun saya pikir baris Anda "SSHPASS = kata sandi sshpass -e ssh jumpbox" harus diganti dengan "SSHPASS = kata sandi sshpass -e ssh jarak jauh" (?) Dan "ssh remote-diteruskan" juga tidak berfungsi (Galat: "ssh: terhubung untuk meng-host port localhost 2222: Koneksi ditolak "), tetapi itu tidak perlu.
Daniel Förster