ssh ใช้ไดเรกทอรีบ้านผิดใน Cygwin


12
$ ssh usaname@login.somehost.no

Could not create directory'/cygdrive/c/Documents and Settings/vidar kongsli/.ssh'.
The authenticity of host 'login.somehost.no (...)' can't be established.
RSA key fingerprint is ....
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.

$ set | grep HOME

HOME=/cygdrive/d/home/vidar
HOMEDRIVE=C:
HOMEPATH=/cygdrive/d/home/vidar

$ ls ~/.ssh

id_rsa  id_rsa.pub

ความคิดใดที่ ssh ไม่ได้ใช้ตัวแปรสภาพแวดล้อม $ HOME เมื่อพยายามค้นหา ~ / .ssh

(แก้ไข: การจัดรูปแบบคงที่)

ssh  cygwin 

คำตอบ:


9

/etc/passwdมีลักษณะที่ ตรวจสอบให้แน่ใจว่ารายการตรงกับไดเรกทอรีบ้านที่คุณคาดหวัง เป็นฟิลด์ที่สองถึงฟิลด์สุดท้ายสำหรับการป้อนข้อมูลของผู้ใช้ของคุณ


4

หาก$HOMEมีการตั้งค่าตัวแปรของคุณแต่ ssh ไม่รู้จักให้ใส่บรรทัดนี้ใน/etc/nsswitch.conf:

db_home: /%H

ที่จะตั้งค่าโฮมไดเรกทอรีของ Cygwin โดยไม่ต้องมีไฟล์ / etc / passwd


ฉันตั้งHOMEเป็น%USERPROFIEL%ตัวแปรสภาพแวดล้อมก่อนที่จะติดตั้ง cygwin ดังนั้น ... / home / <myusername> ยังไม่ได้ถูกสร้างขึ้น ( /etc/passwd cannot be found) และไม่สามารถใช้คีย์ ssh ใน% USERPROFILE% db_home: /%Hแก้ไขปัญหาได้อย่างสมบูรณ์แบบ ขอบคุณมาก!
Marslo

2

ใน /etc/nsswitch.conf:

db_home:  windows

ดูการตั้งค่า db_home นี่เป็นการบอก Cygwin ให้ใช้%USERPROFILE%ไดเรกทอรีWindows เป็น Cygwin $ HOME

นี่เป็นสิ่งจำเป็นหากคุณต้องการแบ่งปันคีย์ SSH เดียวกันระหว่าง git (GitHub Enterprise) และ SSH กับระบบ Unix / Linux

การตั้งค่า%HOME%ที่ระดับ OS ไม่ทำงาน (แม้ว่า$HOMEใน bash จะสะท้อนการตั้งค่าได้อย่างถูกต้อง)

คุณสามารถดูจากคำถามเดิมว่า SSH พยายามที่จะปรับปรุงไดเรกทอรีบ้าน Windows ซึ่งในรุ่นเก่า Vidar ของ Windows C:\Documents and Settings\vidar kongsliเป็น ในเวอร์ชันปัจจุบัน (7+ ฉันคิดว่า) ค่าที่เทียบเท่าคือC:\Users\%USERNAME%(หรือหากไม่ได้ติดตั้ง Windows ใน C :, %SystemDrive%\Users\%USERNAME%)



0

ตั้งอยู่db_homeใน/etc/nsswitch.confเส้นทางสู่บ้านของคุณ นี่คือวิธีที่แนะนำโดย MSYS2

การเพิ่มHOMEตัวแปรสภาพแวดล้อมยังใช้งานได้

Git สำหรับ Windows มีenvในdb_homeที่ควรอ่านของคุณHOMEตัวแปรทุบตี แต่มันเป็นสิ่งที่ไม่น่าเชื่อถือ


1
การแก้ไขอย่างไร คุณตั้งค่า db_home เป็นอะไร
Andrew Schulman

@AndrewSchulman ไปยังไดเรกทอรีที่ฉันต้องการเป็นไดเรกทอรีบ้านของฉัน?
VarunAgw

1
ว้าว! ข้อมูลนี้มีประโยชน์มาก ขอบคุณสำหรับการแก้ไข @ go2null :)
VarunAgw

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