ปฏิเสธสิทธิ์สำหรับ root @ localhost สำหรับการเชื่อมต่อ ssh


28

ฉันเพิ่งติดตั้ง Ubuntu 14.04 และ LAMP บนนั้น แล้วผมอยากจะกำหนดค่าเซิร์ฟเวอร์ของฉันพยายามเพื่อออกนี้กวดวิชา

เมื่อฉันให้คำสั่ง:

ssh root@localhost

ฉันได้รับ: การอนุญาตถูกปฏิเสธโปรดลองอีกครั้ง ฉันเข้าสู่ระบบในฐานะผู้ใช้รูทผ่านคำสั่ง:

sudo -i

ฉันก็ลองเหมือนกันโดยลงชื่อเข้าใช้ผ่าน:

sudo -s

ฉันใช้รหัสผ่านเดียวกันกับที่ใช้ในการเข้าสู่ระบบในฐานะผู้ใช้ แต่ยังคงได้รับข้อความแสดงข้อผิดพลาดเดียวกัน

มีคนช่วยฉันที่นี่ได้ไหม

PS: ฉันดูคำถามนี้แต่ดูเหมือนจะไม่ทำงานสำหรับฉัน

คำตอบ:


57

ตามค่าเริ่มต้นเซิร์ฟเวอร์ SSH ปฏิเสธการเข้าสู่ระบบด้วยรหัสผ่านสำหรับรูท ใน/etc/ssh/sshd_configการเปลี่ยนแปลง:

PermitRootLogin without-password

ไปยัง

PermitRootLogin yes

และรีสตาร์ท SSH:

sudo service ssh restart

หรือคุณสามารถใช้คีย์ SSH หากคุณไม่มีให้สร้างรหัสโดยใช้ssh-keygen( ใช้ค่าเริ่มต้นสำหรับคีย์และข้ามรหัสผ่านหากคุณรู้สึกว่ามันชอบ) จากนั้นทำsudo -s(หรือวิธีที่คุณต้องการให้เป็นรูท) และเพิ่มคีย์ SSH ไปที่/root/.ssh/authorized_keys:

cat /home/user/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

ฉันได้รับข้อผิดพลาดนี้: cat: /home/user/.ssh/id_rsa.pub: ไม่มีไฟล์หรือไดเรกทอรีดังกล่าว
vnay92

อา ขอโทษ ฉันคิดว่าคุณมีกุญแจ SSH ในฐานะผู้ใช้ของคุณให้ทำssh-keygen(ข้ามรหัสผ่านสำหรับคีย์ SSH หากคุณต้องการและดำเนินการตามค่าเริ่มต้นสำหรับส่วนที่เหลือ) เพื่อสร้างรหัส นอกจากนี้ฉันหวังว่าคุณจะแทนที่userด้วยชื่อผู้ใช้จริงของคุณ
muru

ทั้งสองวิธีไม่ได้ผลสำหรับฉัน! ฉันตรวจสอบโฟลเดอร์บ้านของฉันด้วย มันว่างเปล่า. ฉันควรทำอย่างไร?
Heich-B

5

ในบางกรณีหลังการเปลี่ยนแปลง

PermitRootLogin yes

ต้องตรวจสอบการกำหนดค่านี้:

DenyUsers root
AllowUsers saeid

และการเปิดใช้งานการเข้าสู่ระบบจะต้องเปลี่ยนเป็น:

#DenyUsers root
AllowUsers root OtherUser

4

ถ้าหากยังไม่ได้รับรหัสผ่านสำหรับรากและคุณกำลังพยายามที่จะสั่งไฟประกายหรือ haddop ./sbin/stop-all.sh or./sbin/start-all.shเช่น หากคุณไม่มีรหัสผ่านรูทคุณสามารถตั้งค่าโดยใช้

sudo passwd

และไฟคำสั่ง


1

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

ครั้งแรก: ติดตั้ง Unison รุ่นเดียวกันบนพีซีทั้งสองเครื่อง นี่เป็นเรื่องที่ค่อนข้างท้าทายเนื่องจากศูนย์ซอฟต์แวร์มีอยู่ด้านหลังของ Arch ที่พร้อมใช้งาน ดังนั้นฉันไม่สามารถหารุ่นที่สูงกว่าสำหรับ Ubuntu ได้ดังนั้นฉันจึงแทนที่รุ่นบน Arch ด้วยรุ่นที่ต่ำกว่าแทน พบว่าหนึ่งนี่: http://zdia.de/downloads/unison-2.40.102-linux-x86_64 รุ่นเดียวกันอยู่ในศูนย์ซอฟต์แวร์สำหรับ Ubuntu

ที่สอง: ทำตามขั้นตอนจากที่นี่: https://www.howtoforge.com/setting-up-unison-file-synchronization-between-two-servers-on-debian-squeeze (หมายเหตุ: Arch คือเซิร์ฟเวอร์ของฉัน 1 และ Ubuntu เคย เซิร์ฟเวอร์ของฉัน 2. )

ฉันพบปัญหาในขั้นตอนที่ 3 ขณะที่ฉันพยายามคัดลอก ssh แต่แก้ไขได้ด้วยการเปลี่ยน "id_dsa.pub" เป็น "id_rsa.pub" ในบรรทัด "ssh-copy-id -i $ HOME / .ssh / id_dsa.pub root@192.168.0.101" บรรทัด อาจเป็นความผิดของฉันเพราะฉันคิดว่าฉันลืมที่จะเพิ่ม "-t dsa" อย่างไรก็ตามลองใช้คำสั่งดั้งเดิมก่อน หากคุณได้รับข้อผิดพลาดจากนั้นเปลี่ยนเป็น rsa

หลังจากทำตามขั้นตอนข้างต้นแล้วฉันพบว่าฉันยังไม่สามารถรับ Unison เพื่อเชื่อมต่อกับเซิร์ฟเวอร์อื่น ๆ ได้ฉันไม่สามารถลงชื่อเข้าใช้ (ไม่มี Unison) ผ่าน ssh ไปยังเซิร์ฟเวอร์อื่น ในที่สุดหลังจากค้นหา google หลายชั่วโมงฉันก็ถูกพาไปที่หน้านี้และคำตอบที่ได้รับจาก Muru ของฉันได้ปิดผนึกข้อตกลง

หลังจากสมัครแล้วฉันสามารถลงชื่อเข้าใช้ผ่าน SSH ไปยังเซิร์ฟเวอร์ 2 ได้

ดังนั้นฉันจึงวิ่ง Unison และแก้ไขการตั้งค่าโปรไฟล์และวิโอล่า!

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