ssh config untuk beberapa lompatan ditambah "sudo su"
Saya memiliki penyiapan tertentu yang memerlukan urutan langkah-langkah ini:
ssh me@host1
ssh me@host2
sudo su otheruser
Saya sudah:
- kunci ssh di laptop saya yang memungkinkan saya melakukannya
ssh me@host1 - kunci ssh pada host1 yang memungkinkan saya melakukannya
ssh me@host2.
Saya tidak punya izin untuk ssh otheruser@host2.
Tujuan saya adalah: dapatkah saya mengotomatiskan ini? Lebih disukai di file ~ / .ssh / config laptop saya, jadi saya cukup melakukan:
ssh otheruser
... dan biarkan konfigurasi menangani detailnya, idealnya termasuk sandi?
Saya sudah bisa mendapatkan 2/3 dari jalan ke sana dengan konfigurasi ssh berikut:
Host host1
HostName host1.example.com
Host host2
HostName host2.example.com
Host mostly_there
HostName host2.example.com
ProxyJump host1 host2
Hal di atas memungkinkan saya untuk melakukannya, ssh mostly_theretetapi saya masih harus melakukannya sudo su otheruser.
Jawaban
Anda dapat menggunakan ini di .ssh / config:
HOST host1
user me
HOST host2
USER me
ProxyCommand ssh host1 -W %h:%p
HOST otheruser
USER me
ProxyCommand ssh host1 -W %h:%p
RemoteCommand sudo su -c '/bin/bash -i' otheruser
Untuk terhubung ke host2 dengan pengguna pengguna lain cukup gunakan:
ssh otheruser
Saat ini ada kekurangannya, bahwa ini bukan shell interaktif penuh, tapi itu bisa diperbaiki dengan pemanggilan yang lebih baik daripada /bin/bash -i
Jika Anda memiliki root, Anda dapat menggunakan kunci publik Anda ke otheruserauthorized_keys dan login tanpa menggunakan kata sandi. Setelah beralih untuk otherusermelakukan ini:
mkdir -p ~/.ssh
dan masukkan kunci publik Anda ke ~ / .ssh / authorized_keys. Sekarang Anda seharusnya dapat masuk dari jarak jauh otheruserhanya dengan melakukan ssh otheruser@host.