Perhatikan opsi ini:
-o SSHOPT=VAL opsi ssh (lihat man ssh_config)
Dan jika Anda melihat man ssh_config
, ada opsi untuk menyetel jalur ke file kunci pribadi Anda, yang disebut IdentityFile
, sehingga Anda dapat melakukan ini:
sshfs -oIdentityFile=/abs/path/to/id_rsa server: path/to/mnt/point
Jalur ke file identitas harus berupa jalur absolut.
Pada prinsipnya bekerja seperti ini (sebagai root, atau gunakan sudo
):sshfs -o default_permissions,nonempty,IdentityFile=/home/USER/.ssh/id_rsa [email protected]:PATH /mnt/mountpoint
Ganti USER
dengan pengguna yang ada di authorized_keys
file server, SERVER
dengan nama server (atau IP, seperti 192.168.0.11), SRVUSER
dengan pengguna di server (mis. root, yang tidak disarankan tetapi mungkin dan terkadang diperlukan; atur /etc/ssh/sshd_config
Anda di server dengan benar untuk ini, yaitu arahan PermitRootLogin
dan PasswordAuthentication
). Juga gantikan /mnt/mountpoint
sesuai.
Opsi -o nonempty
memungkinkan pemasangan /mnt/mountpoint saat direktori ini tidak kosong. Saya harus menggunakan ini karena saya menyimpan file .unmounted
di direktori ini untuk melihat apakah sudah terpasang atau tidak, jadi jika test -e /mnt/mountpoint/.unmounted
mengembalikan dengan sukses (yaitu file .unmount ada di /mnt/mountpoint), itu tidak dipasang.
Contoh nyata:
- nama server "server rumah"
- pasang direktori /home di server
- mountpoint saya di sistem lokal adalah /mnt/homeserver
- pengguna "steve" memiliki kunci pribadi
ssh [email protected]
sebagai pengguna steve bekerja.
sshfs -o default_permissions,nonempty,IdentityFile=/home/steve/.ssh/id_rsa [email protected]:/home /mnt/homeserver
(sebagai root)
Ini tidak berhasil , saya mendapat pesan kesalahan:read: Connection reset by peer
Solusi: Dapatkan lebih banyak keluaran verbose dengan menambahkan -o debug
.
# sshfs -o default_permissions,nonempty,IdentityFile=/home/steve/.ssh/id_rsa,debug
[email protected]:/home /mnt/homeserver
FUSE library version: 2.9.8
nullpath_ok: 0
nopath: 0
utime_omit_ok: 0
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStT0123
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:2
ECDSA host key for homeserver has changed and you have requested strict checking.
Host key verification failed.
read: Connection reset by peer
Dan tiba-tiba jauh lebih mudah untuk memperbaikinya. Karena kunci sshd dibuat ulang sejak sesi terakhir tetapi /root/.ssh/known_hosts
pada sistem lokal masih memiliki kunci lama – tidak berfungsi. Solusinya, dalam kasus saya, cukup dengan menghapus baris yang dimulai dengan homeserver
dari /root/.ssh/known_hosts
menggunakan editor (seperti nano
). Sekarang pemasangan dengan sshfs berfungsi. Pada pemasangan pertama, kunci baru harus diakui:
# mount /mnt/homeserver
The authenticity of host 'homeserver (192.168.0.11)' can't be established.
ECDSA key fingerprint is SHA256:aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsS/1234.
Are you sure you want to continue connecting (yes/no)? yes
BTW, ini baris di /etc/fstab
:
[email protected]:/home /mnt/homeserver fuse.sshfs noauto,nonempty,default_permissions,IdentityFile=/home/steve/.ssh/id_rsa 0 0
Jadi meskipun itu adalah sesuatu yang lain, coba -o debug
pertama. Ini akan sangat membantu untuk menemukan kesalahan.