GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menentukan file kunci untuk sshfs?

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.


Linux
  1. Bagaimana cara menambahkan output ke file?

  2. Bagaimana cara menentukan lebih banyak ruang untuk pembatas menggunakan cut?

  3. bagaimana cara memulai server kucing jantan di linux?

  1. Bagaimana menemukan pengelola file default?

  2. Bagaimana cara menentukan kunci pribadi saat mendekripsi file menggunakan GnuPG?

  3. Bagaimana cara mengubah pengkodean yang digunakan server SFTP saya?

  1. Apa perbedaan antara file authorized_keys dan known_hosts untuk SSH?

  2. Bagaimana cara kerja izin file untuk pengguna root?

  3. Bagaimana cara menentukan nama host untuk wadah yang sedang berjalan?