ssh รีโมตเซิร์ฟเวอร์บนพอร์ตอื่นที่ไม่ใช่ 22 โดยไม่มีรหัสผ่าน


16

ฉันมักจะเชื่อมต่อกับเซิร์ฟเวอร์ระยะไกลด้วย

ssh user@server.com -p 11000

จากนั้นให้รหัสผ่านในแต่ละครั้งสำหรับผู้ใช้ ฉันควรหลีกเลี่ยงการป้อนรหัสผ่านทุกครั้งที่ฉันเชื่อมต่อโดยใช้ ssh ได้อย่างไร

คำตอบ:


23

ก่อนอื่นใส่สิ่งนี้ใน~/.ssh/config:

Host server
HostName server.com
Port 11000
User user

คุณจะสามารถssh serverแล้วพิมพ์รหัสผ่าน

ประการที่สองการตรวจสอบใน~/.ssh/เพื่อดูว่าคุณมีไฟล์ชื่อและid_rsa id_rsa.pubถ้าไม่คุณไม่ได้มีชุดคีย์ใด ๆ ssh-keygenขึ้นเพื่อให้คุณมีการสร้างคู่ใช้ คุณสามารถให้รหัสผ่านกับกุญแจได้หรือไม่ ไฟล์ที่สร้างid_rsa.pubควรมีลักษณะดังนี้:

ssh-rsa lotsofrandomtext user @ local

ประการที่สาม ssh ไปยังเซิร์ฟเวอร์สร้างไฟล์~/.ssh/authorized_keysหากไม่มีอยู่ จากนั้นผนวกเนื้อหาของสิ่ง~/.ssh/id_rsa.pubที่คุณสร้างไว้ก่อนหน้านี้ที่นี่ นี่อาจหมายถึงการคัดลอกเนื้อหาไฟล์ไปยังคลิปบอร์ดของคุณจากนั้นเปิด~/.ssh/authorized_keysในโปรแกรมแก้ไขข้อความและวางสิ่งนั้น

หรือใช้คำสั่งssh-copy-id server(แทนที่serverด้วยชื่อใน~/.ssh/config) สิ่งนี้จะทำสิ่งเดียวกันกับข้างบน บางครั้งฉันเห็นssh-copy-idการติดขัดดังนั้นฉันไม่ชอบมัน

ตอนนี้คุณควรจะสามารถใช้ ssh ssh serverได้เว้นแต่คุณได้เลือกที่จะปกป้องคีย์ส่วนตัวของคุณด้วยข้อความรหัสผ่าน โดยทั่วไปหากคุณไม่ใช้ข้อความรหัสผ่านคุณควรปกป้องรหัสส่วนตัวของคุณด้วยวิธีอื่น (เช่นการเข้ารหัสดิสก์เต็มรูปแบบ)

ข้อที่สี่ (จำเป็นเฉพาะในกรณีที่คุณปกป้องรหัสส่วนตัวด้วยรหัสผ่าน) ใส่~/.bashrcรหัสนี้ใน :

start_ssh_agent() {
    # Try to use an existing agent
    save=~/.ssh-agent
    if [[ -e "$save" ]]
    then
        . "$save" > /dev/null
    fi
    # No existing agent, start a new one
    if [[ -z "$SSH_AGENT_PID" || ! -e "/proc/$SSH_AGENT_PID" ]]
    then
        ssh-agent > "$save"
        . "$save" > /dev/null
        ssh-add
    fi
}
start_ssh_agent

ด้วยวิธีนี้คุณจะต้องป้อนข้อความรหัสผ่านหนึ่งครั้งต่อการบูตคอมพิวเตอร์


2
'การบรรยาย' ควรมีการอภิปรายถึงวิธีหลีกเลี่ยงการพิมพ์ข้อความรหัสผ่านที่น่ารำคาญตลอดเวลา :-) ssh-agent และ / หรือพวงกุญแจเป็นไปได้ที่จะต้องพิจารณา
Faheem Mitha

1
นอกจากนี้ถ้าชื่อผู้ใช้ของคุณในพื้นที่ห่างไกลไม่ได้เป็นเช่นเดียวกับชื่อผู้ใช้ของคุณในพื้นที่ท้องถิ่นคุณสามารถเพิ่มบรรทัดUser user ~/.ssh/config
cjm

@Faheem ที่ดี แต่ผมไม่เคยตั้งค่าสิ่งนั้นดังนั้นผมจึงไม่คิดว่าผมอยู่ในตำแหน่งที่จะสั่งให้คนอื่น ๆ ที่เกี่ยวกับมัน :)
phunehehe

@FaheemMitha คุณไป :)
phunehehe

เฮ้ดีกว่าไม่สาย
Faheem Mitha

7

หันไปตรวจสอบคีย์ตาม


ขอบคุณสำหรับคำแนะนำ ฉันได้ดูฟอรัม แต่มีปัญหากับพอร์ต ( 11000แทนที่จะเป็น22 ) กับssh -P 11000ฉันก็สามารถคัดลอกด้วย ssh ขอบคุณมาก.
Prabesh Shrestha

4

เป็นอาหารเสริมเพื่อตอบ phunehehe ของให้ดูที่Gentoo ลินุกซ์พวงกุญแจคู่มือสำหรับคำแนะนำกับพวงกุญแจ พวงกุญแจยังใช้ตัวแทน ssh ssh-agent daemon ทำให้ passphrase พร้อมใช้งาน (จะไม่พร้อมใช้งานเมื่อ ssh-agent daemon ตาย) แต่เป็น Keychain reuses an ssh-agent between logins, and optionally prompts for passphrases each time the user logs inเพื่ออ้างคำแนะนำ

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