Openssh sftp komutu, komut satırından belirtilen RSA / DSA anahtarıyla nasıl kullanılır


35

Openssh ssh ve scp komutu -i, kimlik doğrulama için kullanılacak RSA / DSA anahtarının yolunu belirtmek için bir komut satırı seçeneği sağladı.

Sftp man sayfalarına bakıldığında RSA / DSA anahtarını belirtmenin bir yolunu bulamadım.

~ / .Ssh / id_ {dsa, rsa} anahtarlarını değil, belirtilen bir RSA / DSA anahtarını kullanacak bir sftp oturumu başlatmanın bir yolunu arıyorum.

OpenSSH sftp istemcisini Linux'ta denedim ... fakat diğer platformlarda da aynı seçeneklere sahip olması gerekiyordu.


2
Lütfen hangi platformda hangi sftp istemcisini kullandığınızı belirtin.
dmourati

Yanıtlar:


40

Bir potansiyel seçenek kullanmaktır sftp -oIdentityFile=/path/to/private/keyfile. Bunun sizin için işe yarayacağını söylemek için daha fazla bilgiye ihtiyacınız var. Mac / Linux altında çalışıyor gibi görünüyor.


11

-iSftp veya ssh komutunuz için argümanı kullanabilirsiniz .

sftp -i /path/to/private/keyfile ...

-İ seçeneği kullanılamıyorsa, -o seçeneğini aşağıdaki gibi bir sözdizimiyle kullanabilirsiniz:

sftp -oIdentityFile=/path/to/private/keyfile ...

4
sftp, OP'nin soruyu neden sorduğu için muhtemelen -i seçeneğine sahip değildir.
user9517

Linux ana bilgisayarlarım altında çalışıyor, ancak -i seçeneğinin görünmediği Mac dizüstü bilgisayarımda değil.
dmourati

Ubuntu ve CentOS ana bilgisayarlarım sftp için -i anahtarına sahip değil
user9517 GoFundMonica'yı destekliyor

CentOS müşterim yapar: [dmourati @ flexo ~] $ cat / etc / redhat-yayın CentOS yayın 5.6 (Final) [dmourati @ flexo ~] $ ki bu ssh / usr / bin / ssh [dmourati @ flexo ~] $ usr / bin / sftp [dmourati @ flekso ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5 [dmourati @ flexo ~] $ erkek sftp [dmourati @ flexo ~] $ man sftp | baş SFTP (1) BSD Genel Komutları El Kitabı SFTP (1) ADI sftp - güvenli dosya aktarım programı SYNOPSIS sftp [-1246Cpqrv] [-B buffer_size] [-b toplu iş dosyası] [-c şifre] [-D sftp_server_path] [-F ssh_config ] [-i identity_file]
dmourati

1
@dmourati: Ve benim değil [iain @ centos ~] $ hangi ssh / usr / bin / ssh [iain @ centos ~] $ hangi sftp / usr / bin / sftp [iain @ centos ~] $ rpm / usr / bin / sftp / bin / sftp openssh-clients-4.3p2-72.el5_6.3 [iain @ centos ~] $ man sftp | kafa SFTP (1) BSD Genel Komutları Manuel SFTP (1) NAME sftp - güvenli dosya aktarım programı SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b toplu iş dosyası] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S programı] [-s alt sistemi | sftp_server] konak sftp [[kullanıcı @] konak [: Dosya [dosya]]]
user9517 destekleri GoFundMonica

8

Bağlantı için alternatif bir yapılandırma dosyası oluşturabilir ve -Fssh'yi kullanmasını söylemek için anahtarı kullanabilirsiniz. Bir config dosyası yaratın, örneğin ~ / .ssh / config.sftp içeriği ile

Host remote.host.tld
User RemoteUserName
IdentityFile /path/to/atlernate/identityfile

öyleyse sftp'yi böyle çağır

sftp -F ~/.ssh/config.sftp remote.host.tld
Connecting to remote.host.tld...
Enter passphrase for key '/path/to/atlernate/identityfile':
sftp>

Yukarıdaki config, alternatif anahtarın (bu config dosyası kullanıldığında) remote.host.tld üzerindeki RemoteUserName kullanıcısı ile kullanımını kısıtlar.

Alternatif config dosyasının kullanımı için ssh_confg ' ın man sayfasına bakınız .


Yardımın için çok teşekkürler! Çözüm, komut satırı argümanlarına temiz bir alternatif sunar. Şimdilik, -oPort = ALT_PORT kullandığım için tüm değişkenleri komut satırı üzerinden iletmeyi tercih ediyorum.
Adi Roiban
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.