Saya awalnya memposting ini sebagai komentar, tetapi akan menyempurnakannya sebagai jawaban.
OpenSSH berisi beberapa utilitas, di antara yang paling terkenal adalah ssh
dan scp
. Meskipun ssh
hanya akan terhubung ke komputer jarak jauh (dan mungkin menjalankan perintah pada komputer jarak jauh itu), bagian lain dari OpenSSH seperti scp
memiliki sintaks yang sedikit berbeda. Berdasarkan semua yang menjadi bagian dari paket OpenSSH, ini kemungkinan berbagi banyak kode.
Dengan scp
, Anda menentukan file jarak jauh pada formulir triplet sebagai user@host:remotefilename
, di mana remotefilename
mungkin jalur relatif atau absolut.
Jika bagian host diizinkan berada di formulirhost:port
, ini akan menciptakan ambiguitas potensial: jdoe@host.example.com:2222
merujuk ~jdoe/2222
pada host.example.com saat menyambungkan pada port standar, atau apakah itu merujuk pada tidak ada file sama sekali (atau lebih buruk, ~jdoe
) pada host.example.com saat menghubungkan melalui port 2222?
Sintaks URI yang Anda sajikan lebih terbatas pada apa yang dapat diungkapkannya (tidak mengizinkan spesifikasi nama file), dan bahkan yang lebih penting, tidak akan pernah ada ambiguitas kecuali nama host sebenarnya mencakup a :
(yang saya pikir tidak bahkan mungkin dalam DNS, dan tentu saja tidak umum dilakukan, sedangkan nama file semua-numerik tidak terlalu biasa).
Ketika SSH awalnya dikembangkan , SSH dikembangkan sebagai pengganti drop-in yang lebih aman untuk rangkaian alat RSH / rlogin sebelumnya. Saya tidak tahu apa sintaks baris perintah untuk itu kembali pada awal 1990-an (RFC menggambarkan rlogin adalah RFC 1282 dari Desember 1991 , mendahului dokumen yang Anda kutip sekitar 15 tahun), tetapi sepertinya itu tidak masuk akal. tebak itu menggunakan sintaks yang sangat mirip karena nama pengguna ditransmisikan secara khusus dalam protokol rlogin. Mengutip RFC 1282:
Setelah koneksi dibuat, klien mengirim empat string yang diakhiri null ke server. Yang pertama adalah string kosong (yaitu, hanya terdiri dari satu byte nol tunggal), diikuti oleh tiga string non-null: nama pengguna klien, nama pengguna server , dan jenis dan kecepatan terminal. Secara lebih eksplisit: ...
Username lokal dapat diperoleh melalui berbagai fasilitas sistem, tetapi nama pengguna terpencil harus ditentukan secara eksplisit entah bagaimana . Selain @
sering diucapkan "at" dan dengan demikian menjadi pilihan yang cukup alami untuk memulainya, user@host
memetakan dengan baik sintaksis yang mapan untuk misalnya pengiriman email (bandingkan alamat SMTP user@host
, di mana host
mungkin merupakan host aktual atau nama DNS dengan MX record pointing) ke host sebenarnya), jadi itu mungkin pilihan yang mudah daripada membuat sesuatu yang baru.
Juga patut dicatat apa yang ditunjukkan Stephane Chazelas dalam sebuah komentar : dokumen yang Anda maksud bukanlah RFC, itu konsep yang saat ini berusia tujuh tahun yang, dilihat dari pencarian cepat Google untuk mengonfirmasi, tampaknya tidak pernah berhasil. . Itu terjadi sepanjang waktu; sesuatu diusulkan, tetapi tidak mengumpulkan dukungan untuk benar-benar membuatnya menjadi RFC (dan bahkan banyak, banyak RFC adalah non-standar).
-p
sakelar untuk menyampaikan port alternatif.