SSH - วิธีรวม“ -t command” ในไฟล์ ~ / .ssh / config


13

ฉันใช้~/.ssh/configไฟล์เพื่อให้ฉันสามารถป้อนได้ง่ายssh myserverและจะให้ชื่อผู้ใช้พอร์ตชื่อโฮสต์ไฟล์ข้อมูลประจำตัวที่ถูกต้อง

อย่างไรก็ตามสำหรับเซิร์ฟเวอร์หลาย ๆ อย่างสิ่งแรกที่ฉันทำคือเข้าsu -สู่ระบบในฐานะ root ssh myserver -t su -ฉันสามารถทำเช่นนี้ทั้งหมดในหนึ่งคำสั่งในบรรทัดคำสั่งเพื่อต้องการ: มีบางอย่างที่ฉันสามารถเพิ่มลงใน~/.ssh/configไฟล์ของฉันที่จะทำเพื่อฉันได้ไหม? ฉันต้องการที่จะทำssh myserver-rootและมันจะทำเช่นเดียวกับssh myserver -t su -?

ฉันรู้PermitRootLoginว่ามันปิดสำหรับเซิร์ฟเวอร์นี้และฉันลังเลที่จะเปิดใช้งาน ฉันค่อนข้างจะดูว่ามีวิธีการทำเช่นนี้โดยใช้ ssh ในฝั่งลูกค้า

คำตอบ:


10

ฉันคิดว่าฉันจะเข้าหาสิ่งนี้จากทิศทางอื่น - ใช้ 'command =' ในรายการกุญแจสาธารณะในไฟล์ ~ / .ssh / authorized_keys ของคุณบนเซิร์ฟเวอร์ระยะไกลเพื่อรันคำสั่ง "su -" ของคุณ

จากนั้นเพียงใช้ / อ้างอิงคีย์ส่วนตัวในไฟล์ ~ / .ssh / config (ตัวเลือก IdentityFile) สำหรับทุก ๆ โฮสต์ / นามแฝง ("myserver-root") ที่คุณต้องการใช้วิธีนี้

ตัวเลือกที่มีอยู่ใน authorized_keys (5) มีการบันทึกไว้ใน sshd (8)


ใช่นั่นเป็นสิ่งที่ฉันต้องการ :) ฉันสามารถควบคุมไฟล์ ~ / .ssh / authorized_key บนเซิร์ฟเวอร์ได้อย่างสมบูรณ์และไม่มีปัญหากับการเปลี่ยนแปลง
Rory

8

ใช้พลังลุค!

ใช้RequestTTY forceในของคุณ~/.ssh/configสำหรับโฮสต์ที่ต้องการ

BTW นี้ยังเป็นที่กล่าวถึงที่นี่/unix/27713/ssh-config-way-to-spectify-pseudo-tty-allocation-and-command-execution-like-sc/294468#294468


ฉันเชื่อว่านี่เป็นคำตอบที่ดีกว่าสำหรับคำถามดั้งเดิม
John Kloian

3

ทำไมไม่เพิ่มสคริปต์ใน dir ในเส้นทางของคุณ (หรือชื่อแทน) เรียกว่า rssh เช่น:

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

จากนั้นเป็นเพียง:

rssh myServer

1

ฉันไม่พบตัวเลือกการกำหนดค่าใด ๆ สำหรับการจัดสรรหลอกในแหล่ง OpenSSH

แต่ฉันสามารถให้คำแนะนำเกี่ยวกับ PermitRootLogin ตั้งเป็น:

PermitRootLogin without-password

และอนุญาตเฉพาะการล็อกอินรูทด้วย ssh-keys


1

วิธีการเกี่ยวกับการเพิ่มสิ่งนี้ใน ~ / .bashrc บนฝั่งเซิร์ฟเวอร์?

if [ "$SSH_TTY" != "" ]; then su -; logout; fi

1

คำตอบที่ดีที่สุดน่าจะเป็นการรวมกันของrkthkrและJRG ใช้PermitRootLoginเพื่อต้องการคีย์จากนั้นใส่คีย์ด้วยcommandคีย์เวิร์ดในไฟล์ authorized_keys ของรูท

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.