cara ssh -Y dan kemudian su - <pengguna lain> dan masih meneruskan aplikasi X ke mesin lokal Anda

13

Cukup mudah untuk 'mengambil' (yaitu menggambar secara lokal) aplikasi linux yang dijalankan dari jarak jauh: Jika saya ssh -Yke mesin jarak jauh dan menjalankan aplikasi, aplikasi itu pasti akan cukup muncul di desktop lokal saya.

Namun, jika saya ssh'ed di mesin remote, saya suke pengguna yang berbeda, saya tidak bisa meneruskan aplikasi X ke mesin lokal saya. Dikatakan wrong authentication.

Saya tidak yakin bagaimana menangani kasus ini. Ini echo $DISPLAYmasih benar (ditetapkan oleh ssh -Ylogin awal ), tetapi cookie sesi mungkin hanya ditetapkan untuk pengguna awal yang masuk ssh.

Bagaimana saya bisa mengatasi kesulitan ini dan meneruskan aplikasi X lain yang dijalankan dari pengguna yang berbeda?

Alasan saya tidak ssh'ing secara langsung adalah karena saya tidak ingin pengguna itu dapat diakses melalui ssh (itu adalah pengguna "virtualbox", yang jelas merupakan target yang mudah bagi bot yang mencoba ssh ke server itu) ...

tidak
sumber

Jawaban:

12

Saat Anda terhubung ke mesin hapus melalui ssh dengan penerusan X11 diaktifkan, ssh di server membuat .Xauthorityfile di direktori home pengguna. Karena ssh mendengarkan X11 pada soket TCP, siapa pun dapat terhubung. Karena siapa pun dapat terhubung, kami memerlukan beberapa cara untuk mencegah sembarang orang menggunakan tampilan Anda. Ini dilakukan dengan .Xauthorityfile itu. File berisi "cookie" yang disajikan ke server X11 yang memverifikasi klien harus diizinkan untuk terhubung.

Melewati semua detail, jika Anda menyalin .Xauthorityfile itu ke direktori home pengguna target Anda (dan memberi mereka kepemilikan), Anda harus dapat terhubung.

Patrick
sumber
Perlu dicatat bahwa bahkan setelah melakukan ini variabel DISPLAY perlu diatur dengan benar setelah berpindah pengguna. Ini bisa menjadi masalah saat menggunakan 'sudo' yang mungkin menyaring lingkungan.
Chris Arguin
8
  1. ssh -Y ke mesin remote seperti dirimu sendiri.
  2. Sesampai di sana, ketik xauth list. Daftar item MAGIC-COOKIE muncul. Sesi login Anda kemungkinan besar adalah yang paling bawah dalam daftar. (Periksa ini dengan melihat kode hostname dan kode angka UNIX, dan membandingkannya dengan nama host yang Anda gunakan dari shell dan localhost Anda saat ini: ## DISPLAY env variable.)
  3. Ganti pengguna.
  4. Ketik xauth add+ seluruh baris MAGIC-COOKIE dari atas.
  5. Grafik akan muncul sekarang. Uji dengan cepat xlogo.
Randy
sumber
2
tidak ada "+" di xauth add. Misalnya hanya xauth tambahkan ubuntu / unix: 10 MIT-MAGIC-COOKIE-1 6b49de7c34409d5ac69beab31d12ec94
Tuntable
1
USER="otherusername" && MAGIC_COOKIE=`xauth list | tail -n1` && su -c "xauth add $MAGIC_COOKIE" $USER && su - $USER
7yl4r
3

Saya suka jawaban Randy, tetapi itu tidak berhasil bagi saya.

Inilah yang harus saya kerjakan:

  1. ssh -Y as user1
  2. xauth list | grep `uname -n`
  3. Beralih ke user2
  4. unset XAUTHORITY
  5. xauth generate :0 .
  6. xauth add :0 . <KEY-FROM-STEP-2>

Perhatikan dua periode dalam langkah 5 dan 6.

Jika saya hanya mengikuti jawaban Randy, XAUTHORITYvariabel user2 masih menunjuk ke .Xauthorityfile user1 . Dan sintaks kunci + nya tidak bekerja.

Jon Daley
sumber
2

Ini bukan jawaban, jadi jika Anda menemukannya, jelas itu lebih disukai.

Jika tidak, dan ini adalah akar penyebab teka-teki Anda:

Alasan saya tidak ssh'ing secara langsung adalah karena saya tidak ingin pengguna itu dapat diakses melalui ssh (itu adalah pengguna "virtualbox", yang jelas merupakan target yang mudah bagi bot yang mencoba ssh ke server itu) ...

Bagiku itu bukan alasan yang bagus. "Apa target bot" WRT sshd yang dikonfigurasi dengan baik sebagian besar tidak relevan. Apakah mereka akan berdengung di sekitar port 22 di semua tempat di mana saja? Sepertinya begitu. Apakah ini berarti mereka benar-benar memiliki peluang untuk sukses?

Coba cari-cari cerita tentang seseorang yang memiliki bot anonim acak berhasil membobol sshd. Saya yakin itu pasti terjadi pada seseorang di suatu tempat (dan, tentu saja, Anda mungkin tidak pernah tahu), tetapi saya tidak dapat menemukan laporan seperti itu. Akan menarik untuk membaca apa konfigurasi yang digunakan.

SSH sangat aman bila digunakan dengan benar.Jika tidak, perdagangan internet tidak akan layak. Jadi mengapa bot ini mengganggu? Dengan "digunakan dengan benar" Maksudku, terutama, dengan pasangan kunci publik / swasta wajib. Jika Anda melakukan itu dan yakin kunci pribadi Anda aman (dan Anda seharusnya), yakinlah tentang sshd.

Saya pikir alasan semua "upaya pembobolan" terjadi sama sekali adalah karena ada banyak pengguna yang tidak melakukan hal-hal seperti mengajukan pertanyaan pada U&L;) dan tidak membaca halaman manual dan menggunakan perlindungan kata sandi saja, yang seperti meninggalkan kartu ATM Anda di mesin di suatu tempat dengan tanda yang mengatakan, "Tebak!".

Namun, jika Anda memikirkan kunci pribadi Anda seperti kartu ATM Anda - sebagai sesuatu yang dijamin secara fisik oleh Anda (yang pada dasarnya adalah), maka target menjadi jauh lebih halus. Semua yang dapat dilakukan oleh bot adalah membuktikan bahwa ya, itu benar-benar akan membutuhkan ribuan mesin ribuan tahun bekerja bersama untuk memaksa 2048-bit key.

Jika Anda muak membaca laporan upaya pembobolan, ubah porta Anda. Saya telah melihat orang-orang di sini buang-buang ini sebagai "keamanan oleh ketidakjelasan", namun, sshd yang diamankan dengan benar pada port 22 tidak akan menjadi kurang aman pada port 57, tetapi tidak akan secara acak terganggu. Tentu saja, semua musuh drone Anda hanya bisa memindai seluruh IP - tetapi Anda tahu apa? Mereka tidak melakukannya. Saya kira ini karena yang mereka cari adalah seseorang yang menjalankan sistem yang bahkan belum melihat /etc/ssh/sshd_config, apalagi mendidik diri mereka sendiri dan menyetelnya.

goldilocks
sumber
Saya setuju dengan semua yang Anda katakan. tetapi saya selalu merasa tidak aman (bukankah itu yang mereka ajarkan pada Anda dalam banyak situasi setelah Anda terbakar?). Sejujurnya pc yang saya coba masuki, sedang firewall (tidak ada akses dari luar). Ini ssh ada di port yang tinggi, memiliki kata sandi yang sulit, tetapi saya masih merasa bahwa "virtualbox" adalah nama publik. sesuatu yang seseorang di suatu tempat dapat memilih untuk dimasukkan dalam kode bot. Kunci SSH adalah solusi luar biasa terutama jika digunakan dengan perlindungan kata sandi. Tetapi saya harus membawa distro linux ringan di usb jika saya ingin menggunakannya.
nass