Bagaimana cara sftp ke server jika nama pengguna berisi simbol @


25

Saya harus sftp ke server ke port tertentu tetapi nama pengguna berisi simbol @.

misalkan pengguna adalah "user@example.com" dan server ftp hanyalah "example.com"

Saya akan mengakhiri dengan

sftp -oPort:8777 user@example.com@example.com

apa yang jelas tidak akan berhasil, seperti yang telah saya uji.

Amatir macam apa yang menciptakan nama pengguna dengan @? Oke, bos saya yang melakukannya.

Bagaimana saya mengatasinya?


1
Cobalah melarikan diri dari "komersial di" seperti itusftp -oPort:8777 user\@domain.com@domain.com
Tim

Jika Anda menghapus bagian nama pengguna dan hanya meninggalkan domain, apakah itu meminta Anda untuk nama pengguna setelah Anda memasukkan perintah?
ladaghini

@ladaghini - ini akan digunakan di dalam skrip ... tidak ada prompt yang tersedia. Oke, saya tahu implikasi memiliki nama pengguna dan kata sandi dalam skrip, tetapi nama pengguna ini memiliki area terbatas. Itu harus sftp karena server ini hanya menghasilkan nama pengguna untuk sftp.
SpaceDog

@Tim ... melarikan diri itu tidak membantu.
SpaceDog

Jawaban:


33

Masukkan nama pengguna melalui -o Useropsi, atau melalui Userdirektif yang setara dalam file konfigurasi klien ( ~/.ssh/config).

sftp -o Port:8777 -o User=user@example.com example.com

Ini berlaku untuk ssh, scpdan sshfsjuga. Menggunakan file konfigurasi daripada -oopsi memiliki keuntungan juga bekerja dengan alat yang memanggil sshdan jangan biarkan Anda dengan mudah melewati opsi baris perintah jika sama sekali.


Nama pengguna ini tidak memiliki akses ssh, hanya sftp.
SpaceDog

@DigitalRobot s / ssh / sftp /
ladaghini

@ DigitalRobot Ini berfungsi untuk keduanya sshdan sftp(dan scpjuga).
Gilles 'SANGAT berhenti menjadi jahat'

Berlangsung. Apa yang harus kita lakukan jika passwd juga mengandung '@' atau '/'
Shicheng Guo

@ShichengGuo ??? Tidak ada masalah dengan @atau /di kata sandi. Anda cukup mengetiknya. SSH bahkan tidak mengizinkan cara apa pun untuk memasukkan kata sandi pada opsi baris perintah atau dalam file konfigurasi.
Gilles 'SO- stop being evil'

6
sftp -o Port:8777 'user@domain.com'@domain.com

Ini juga akan berfungsi, meskipun bentuknya sangat buruk bagi mereka untuk menyediakan pengguna dengan jenis nama ini.


0

Mengganti @("komersial di") dengan +("tanda plus)" dapat diterima di beberapa server SFTP:

sftp -oPort:8777 user+example.com@example.com
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.