SSH - Cara memasukkan "-t command" dalam file ~ / .ssh / config

13

Saya menggunakan ~/.ssh/configfile sehingga saya dapat dengan mudah memasukkan ssh myserverdan itu akan memberikan nama pengguna, port, nama host, file identitas yang benar, dll.

Namun untuk banyak server, hal pertama yang saya lakukan adalah masuk su -untuk login sebagai root. Aku bisa melakukan semua ini dalam satu perintah pada baris perintah seperti: ssh myserver -t su -. Apakah ada sesuatu yang dapat saya tambahkan ke ~/.ssh/configfile saya yang akan melakukannya untuk saya? Saya ingin dapat melakukan ssh myserver-rootdan itu akan melakukan hal yang sama ssh myserver -t su -?

Saya tahu PermitRootLogin, itu tidak aktif untuk server ini, dan saya enggan untuk mengaktifkannya. Saya lebih suka melihat apakah ada cara untuk melakukan ini menggunakan ssh di sisi klien.

Rory
sumber

Jawaban:

10

Saya pikir saya akan mendekati ini dari arah lain - gunakan 'command =' pada entri kunci publik di file ~ / .ssh / official_keys Anda di server jarak jauh, untuk menjalankan perintah "su -" Anda.

Kemudian cukup gunakan / referensi kunci pribadi di file ~ / .ssh / config Anda (opsi IdentityFile) untuk setiap host / alias ("myserver-root") yang Anda inginkan dengan cara ini.

Opsi yang tersedia di otor_keys (5) didokumentasikan dalam sshd (8).

jrg
sumber
Ya itu melakukan persis apa yang saya inginkan. :) Saya memiliki kendali penuh atas file ~ / .ssh / Authorized_key di server dan tidak memiliki masalah dengan mengubah itu.
Rory
3

Mengapa tidak menambahkan skrip ke direktori di jalur Anda (atau alias untuknya) yang disebut rssh seperti:

#!/bin/bash
ssh $1 -t 'su -'

Maka itu hanya:

rssh myServer
Kyle Brandt
sumber
1

Saya tidak menemukan opsi konfigurasi untuk alokasi pseudo-tty di sumber OpenSSH.

Tapi saya bisa memberikan tip tentang PermitRootLogin, Set ke:

PermitRootLogin without-password

Dan hanya izinkan login root dengan ssh-keys.

rkthkr
sumber
1

Bagaimana kalau menambahkan sesuatu seperti ini di ~ / .bashrc di sisi server?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi
Shawn Chin
sumber
1

Jawaban terbaik mungkin kombinasi rkthkr dan jrg . Gunakan PermitRootLoginuntuk memerlukan kunci, maka hanya masukkan kunci dengan commandkata kunci dalam file root_keys resmi.

mwalling
sumber