Saya bertanya-tanya apakah seseorang dapat membantu saya dengan skrip saya.
Saya punya 2 server. Mari kita sebut mereka Server A dan Server B. Server B memiliki perangkat lunak yang diinstal di atasnya yang ingin saya jalankan dari Server A. Saya tidak dapat menginstal perangkat lunak di Server A.
Saya harus membiarkan pengguna menjalankan perangkat lunak lain di Server A yang kemudian akan memanggil skrip untuk memanggil perangkat lunak di Server B untuk menjalankan perintah.
Jadi saya membuat pengguna yang disebut transfer pada server A dan server B. Saya mengizinkan transfer untuk dapat ssh ke server B tanpa perlu kata sandi menggunakan kunci otentikasi.
Jadi sekarang dari Server A saya mencoba su sebagai transfer, ssh ke Server B dan jalankan perintah.
Ini berfungsi dengan baik sebagai root. Namun, ketika saya sendiri atau pengguna lain, itu meminta saya untuk kata sandi untuk pengguna "transfer" di Server B.
Berikut adalah urutan perintah:
#!/bin/bash
su transfer -c 'ssh transfer@ServerB script $1 $2'
su
dari nonroot memerlukan kata sandi dari pengguna baru di mana ia berjalan , yaitu A, karena Unix dirancang sebagai sistem multiuser. Cobasu transfer -c 'echo hi'
lihat ini. Anda dapat menggunakansudo
untuk mengizinkan pengguna terpilih untuk menjalankan inissh
pada A, atau Anda bisa memberikan pengguna tertentu pada A privatekey yang memungkinkan mereka untuk menggunakanssh
untuk mengakses B sebagaitransfer
.tanpa memilikitransfer
pengguna di A sama sekali.