sshfs ให้“ โฮสต์ระยะไกลได้ตัดการเชื่อมต่อ”


14

ฉันพยายามsftpเชื่อมต่อการเชื่อมต่อไปยังโฟลเดอร์โดยใช้sshfsคำสั่งต่อไปนี้ซึ่งทำให้เกิดข้อผิดพลาด

~$ sshfs admin@example.com:/ testfo
remote host has disconnected

ข้อผิดพลาดเดียวกันที่เกิดขึ้นถ้าผม SSH localhostเข้าสู่ระบบและทำซ้ำคำสั่งโดยมี คำสั่งนี้ยังทำงานกับเครื่องอื่นดังนั้นปัญหาจึงอยู่ที่เซิร์ฟเวอร์

~$ cat /var/log/auth.log

[...]

May 24 22:49:43 example sshd[20095]: Accepted publickey for admin from 24.111.222.33 port 47086 ssh2: RSA ad:xx:6e:xx:14:xx:bd:b5:xx:cb:66:xx:xx:xx:a3:ac
May 24 22:49:43 example sshd[20095]: pam_unix(sshd:session): session opened for user admin by (uid=0)
May 24 22:49:43 example systemd-logind[812]: Removed session 60.
May 24 22:49:43 example systemd-logind[812]: New session 61 of user admin.
May 24 22:49:44 example sshd[20143]: Received disconnect from 24.203.164.45: 11: disconnected by admin
May 24 22:49:44 example sshd[20095]: pam_unix(sshd:session): session closed for user admin

~/.sshไดเรกทอรีเป็นเจ้าของโดย admin ตั้งแต่ผมเห็นว่าเป็นความพยายามแก้จุดบกพร่องสำหรับปัญหาที่คล้ายกัน

ข้อมูลเพิ่มเติมสำหรับการอ้างอิงในอนาคต:

ปัญหาไม่ได้อยู่กับ SSH แต่ด้วย SFTP นี่คือประจักษ์โดยข้อเท็จจริงที่ว่าการเชื่อมต่อ SSH ทำงานอย่างถูกต้อง แต่ SFTP ล้มเหลวเสมอ ความพยายามที่จะส่งผลให้ SFTP เป็นReceived unexpected end-of-file from SFTP server

ปัญหาไม่เกี่ยวข้องกับสตริงการแสดงผลสคริปต์การเข้าสู่ระบบ (เช่น~/.bashrc)

ปัญหานี้เกิดขึ้นจากผู้ใช้ทั้งหมด (รวมถึงรูท)

นี่คือการกำหนดค่า sshd ของฉัน ( /etc/ssh/sshd_config):

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
HostKey /etc/ssh/ssh_host_ed25519_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 1024

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

sftp-serverติดตั้งแพคเกจแล้ว ( sudo apt-get install openssh-sftp-server)


1) คุณสามารถไปที่sftpนั่นได้โดยตรงหรือไม่ เนื้อหาของ~/.bashrcหรือไฟล์เริ่มต้นอื่น ๆ ในโฮมไดเร็กตอรี่ของเซิร์ฟเวอร์คืออะไร?
Jakuje

@Jakuje อืม .. ปัญหาน่าจะเป็นจริงด้วย sftp ลองกับ filezilla ให้Received unexpected end-of-file from SFTP server
Slava Knyazev

2) คุณสามารถsftpผู้ใช้ที่แตกต่างกัน? 3) คุณsshd_configมีลักษณะอย่างไรบนเซิร์ฟเวอร์ 4) คุณ~/.bashrcมีลักษณะอย่างไร
Jakuje

@Jakuje Same 2) ไม่ .. ข้อผิดพลาดเดียวกันสำหรับผู้ใช้ทั้งหมด 3) pastebin.com/raw/ujNk3fVR 4) bashrc ไม่มีความเกี่ยวข้อง แต่ที่นี่: pastebin.com/raw/mUD3DWmG
Slava Knyazev

which sftp-serverสิ่งที่คุณได้รับจาก Subsystem sftp /usr/lib/openssh/sftp-serverระบบย่อยควรจะเป็น คุณsftp-serverติดตั้งแล้วหรือยัง apt-get install openssh-sftp-server.
Jakuje

คำตอบ:


5

Subsystemคุณค่าของคุณsshd_configเป็นสิ่งที่ผิด

มันควรจะเป็นหรือSubsystem sftp /usr/lib/openssh/sftp-server internal-sftpลองปรับเปลี่ยน/etc/ssh/sshd_configค่านี้เริ่มบริการ ssh และลองอีกครั้ง


6

คำถามเก่า แต่คำถามแรกที่เกิดขึ้นสำหรับปัญหานี้

ปัญหาของฉันคือเซิร์ฟเวอร์ต้องการการรับรองความถูกต้องของคีย์ แต่ฉันกำลังเรียกใช้คำสั่งโดยใช้sudoและการระบุ-o IdentityFile=~/.ssh/id_rsaความหมาย~ถูกขยายไปที่บ้านของรูทไม่ใช่ของฉัน

การระบุเส้นทางแบบเต็มทำงานได้และฉันคิดว่าการใช้$HOMEก็มีเช่นกัน (เพราะจะขยายก่อนหน้านี้)


1
ขอบคุณสามารถติดตั้งด้วยเคล็ดลับนี้
Bemmu

1

คุณจะได้รับข้อผิดพลาดนี้หากเซิร์ฟเวอร์ระยะไกลกำลังเรียกใช้งาน Dropbear มากกว่า OpenSSH

SSHFS ใช้ SFTP และ Dropbear ไม่ได้จัดเตรียม SFTP ดังนั้นเมื่อคุณพยายามใช้เซิร์ฟเวอร์ Dropbear จะเห็นคำขอสำหรับระบบย่อยที่ไม่เข้าใจและทำให้การเชื่อมต่อขาดหาย

จากที่นี่: /unix/363540/mount-a-filesystem-using-sshfs-using-the-dropbear-server-on-yocto-firmware


0

หากคุณสามารถเชื่อมต่อโฮสต์ผ่าน ssh ได้ด้วยตัวเอง:

ssh xxx.xxx.xxx.xxx

คุณอาจได้รับแจ้งให้บันทึกรหัสคุณต้องพิมพ์ YES ไม่ใช่เพียง Y คุณควรถามชื่อผู้ใช้และรหัสผ่านสำหรับผู้ใช้บนเครื่องระยะไกลนั้น

ใช้สิ่งที่คุณพยายามทำ sshfs ด้วยโพสต์กลับผลลัพธ์ของคุณ

หากคุณได้รับการเชื่อมต่อถูกปฏิเสธฉันคาดเดาว่าคุณไม่ได้ติดตั้ง SSH บนคอมพิวเตอร์ระยะไกล Open ssh สามารถติดตั้งได้ด้วยคำสั่งนี้รันบนคอมพิวเตอร์ระยะไกล:

sudo apt install openssh-server

1
ใช่ฉันสามารถที่จะ ssh มัน "ข้อผิดพลาดเดียวกันเกิดขึ้นถ้าฉัน SSH เข้าสู่ระบบ [.. ]" โดยนัย เซิร์ฟเวอร์มีการตั้งค่าอย่างถูกต้องเท่าที่ฉันรู้
Slava Knyazev

ตกลงฉันอาจจะพลาดการอ่านความคิดเห็นของคุณคุณประสบความสำเร็จในการเข้าสู่ระบบด้วย ssh หรือตามที่ฉันอ่านที่นี่: "ข้อผิดพลาดเดียวกันเกิดขึ้นถ้าฉัน SSH เข้าสู่ระบบ [.. ]"
Christopher Angulo-Bertram

ฉันสามารถ ssh ไปได้ดี
Slava Knyazev

ตกลงมองไปที่บรรทัดคำสั่งของคุณบางทีคุณอาจมีพื้นที่เพิ่มเติมหรือไม่ ฉันเจออันนี้ที่บรรทัดฉันจะส่งลิงค์ให้คุณ sshfs <username> @ <ipaddress>: / remotepath ~ / remoteserv ฉันพบที่นี่: howtogeek.com/howto/ubuntu/… มีคำแนะนำอื่น ๆ อีกมากมาย แต่ในคำถามดั้งเดิมของคุณคำสั่งของคุณดูเหมือนจะมีพื้นที่พิเศษ
Christopher Angulo-Bertram

ฉันยังไม่เห็นว่าคุณกำลังเชื่อมต่อกับระบบโลคัลของคุณเป็นไดเรกทอรี รหัสของคุณรหัสของฉันที่จะปฏิบัติตาม: sshfs admin@example.com: / testfo
Christopher Angulo-Bertram

0

ฉันไม่แน่ใจว่ามันช่วยได้หรือไม่ แต่ฉันมีปัญหาที่คล้ายกัน

remote host has disconnected

และหลังจาก Googling & เรียกดูฉันก็รู้ว่าจริง ๆ แล้วฉันเชื่อมต่อ ssh ผ่านพอร์ตที่แตกต่างกัน

ตัวอย่างเช่นฉันต้องเชื่อมต่อผ่าน ssh (ตัวอย่างเช่นสมมติว่าหมายเลขพอร์ต 1234):

ssh username@example.com -p 1234

แทน ssh มาตรฐานเมื่อหมายเลขพอร์ตคือ 22 ดังนั้นต้องใช้การเชื่อมต่อ sshfs เดียวกัน:

sshfs username@example.com:/ ~/testfolder -p 1234

มันแก้ไขปัญหาของฉัน


0

อีกสาเหตุหนึ่งที่เกิดขึ้นกับฉันก็คือว่าdropbearmultiไบนารีตัวเองขาดสตริง/usr/libexec/sftp-serverที่ได้หายไปที่ไหนสักแห่งรอบ 33,600 สร้างของ DD-WRT ตรวจสอบว่าไบนารีที่กล่าวถึงไฟล์นี้หรือไม่จะทำงานแม้ว่ามันจะมีอยู่ ฉันต้องใช้ไบนารีจาก build 33525 และสร้าง launcher ที่ฆ่า dropbear buggy ปกติจากนั้นรันอันนี้ คุณสามารถสร้าง symlink ที่เรียกว่าชี้ไปที่dropbear dropbearmultiคุณหยุดการทำงานปัจจุบันด้วยstopservice sshdจากนั้นเรียกใช้งานการทำงาน ดูpsว่าพารามิเตอร์ที่เหมาะสมมีลักษณะอย่างไร เป็นการดีที่สุดที่จะมีไว้ใน jffs (หรือแกะมันออกเป็น / tmp) เพื่อให้คุณยังสามารถumountใช้ไดรฟ์ได้

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