Score:0

การแทนที่คำสั่งไม่ทำงานเมื่อออกจาก ssh

ธง km

ฉันมี Ubuntu vps ที่ฉันเชื่อมต่อจากแล็ปท็อปที่ใช้ Ubuntu ด้วย

เมื่อฉัน ssh root@server ไปยังเซิร์ฟเวอร์ของฉัน ฉันสามารถรันคำสั่งต่อไปนี้ได้สำเร็จ:

root@server:~# wg set wg0 peer $(cat /etc/wireguard/clients/guard001_pub) ลบ

แต่เมื่อฉันไม่ต้องการเข้าสู่ระบบและเพียงต้องการเรียกใช้คำสั่งจากระยะไกล ฉันได้รับข้อผิดพลาดการอนุญาตซึ่งฉันไม่เข้าใจว่าทำไม เนื่องจากไฟล์เป็นเจ้าของโดย root และมีสิทธิ์ rwx ทั้งหมด

ชื่อผู้ใช้@mymachine:~$ ssh root@server "wg set wg0 peer $(cat /etc/wireguard/clients/guard001_pub) Remove"

ให้ข้อผิดพลาดต่อไปนี้:

แมว: /etc/wireguard/clients/guard001_pub: ปฏิเสธการอนุญาต
คีย์มีความยาวหรือรูปแบบไม่ถูกต้อง: `remove'

ใครสามารถบอกได้ว่าเหตุใดจึงเกิดขึ้นและวิธีแก้ไขที่ดีที่สุดคืออะไร

Score:0
ธง hr

เนื่องจากคุณล้อมรอบคำสั่งด้วยอัญประกาศ $(แมว /etc/wireguard/clients/guard001_pub) ได้รับการประเมินโดยคุณ ท้องถิ่น เปลือกก่อนการ จุ๊ๆ คำสั่งถูกเรียกใช้

ตั้งแต่ในท้องถิ่น แมว /etc/wireguard/clients/guard001_pub ล้มเหลว การแทนที่คำสั่งโลคัลส่งผลให้เกิดสตริงว่าง และกลายเป็นคำสั่งรีโมต

wg ตั้ง wg0 เพียร์ลบ

ดังนั้น ลบ ได้รับการส่งผ่านเป็นกุญแจสำคัญ

ให้ใช้เครื่องหมายอัญประกาศเดี่ยวแทน:

ssh root@server 'wg set wg0 peer $(cat /etc/wireguard/clients/guard001_pub) ลบ'

หรืออาจจะดีกว่า

ssh root@server 'wg set wg0 peer "$(cat /etc/wireguard/clients/guard001_pub)" ลบ'

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา