Як використовувати команду openssh sftp за допомогою ключа RSA / DSA, вказаного в командному рядку


35

Команда Openssh ssh і scp передбачає -iпараметр командного рядка для визначення шляху до ключа RSA / DSA, який буде використовуватися для аутентифікації.

Переглядаючи сторінки sftp man, я не зміг знайти спосіб вказати ключ RSA / DSA.

Я шукаю спосіб ініціювати сеанс sftp, який буде використовувати вказаний ключ RSA / DSA, а не клавіші ~ / .ssh / id_ {dsa, rsa}.

Я спробував OpenSSH sftp-клієнт на Linux ... але він повинен мати ті ж варіанти на інших платформах.


2
Будь ласка, вкажіть, який клієнт sftp ви використовуєте на якій платформі.
dmourati

Відповіді:


41

Один з потенційних варіантів - використовувати sftp -oIdentityFile=/path/to/private/keyfile. Потрібна додаткова інформація, щоб сказати, чи буде це для вас. Здається, працює під Mac / Linux.


11

Ви можете просто використовувати -iаргумент для команди sftp або ssh.

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

Якщо параметр -i недоступний, ви можете використовувати параметр -o із синтаксисом на зразок:

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

4
sftp не має опції -i, імовірно, чому ОП задає питання.
user9517 підтримує GoFundMonica

працює під моїми хостами Linux, але не на моєму ноутбуці Mac, де, здається, варіант -i не існує.
dmourati

У моїх хостів Ubuntu та CentOS немає комутатора -i для sftp
користувач9517 підтримує GoFundMonica

Мій клієнт CentOS робить: [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS випуск 5.6 (остаточний) [dmourati @ flexo ~] $ котрий ssh ​​/ usr / bin / ssh [dmourati @ flexo ~] $ котрий sftp / usr / bin / sftp [dmourati @ flexo ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5 [dmourati @ flexo ~] $ man sftp [dmourati @ flexo ~] $ man sftp | голова SFTP (1) Посібник з загальних команд BSD SFTP (1) ІМЯ sftp - захищена програма передачі файлів SYNOPSIS sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c шифр] [-D sftp_server_path] [-F ssh_config ] [-i ідентифікаційний
файл

1
@dmourati: І мій не [iain @ centos ~] $ котрий ssh ​​/ usr / bin / ssh [iain @ centos ~] $ котрий sftp / usr / bin / sftp [iain @ centos ~] $ rpm -qf / usr / bin / sftp openssh-clients-4.3p2-72.el5_6.3 [iain @ centos ~] $ man sftp | head SFTP (1) Інструкція загальних команд BSD SFTP (1) NAME sftp - безпечна програма передачі файлів SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b batchfile] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S program] [-s підсистема | sftp_server] хост sftp [[user @] хост [: файл [файл]]]
користувач9517 підтримує GoFundMonica

8

Ви можете створити альтернативний конфігураційний файл для підключення та використовувати -Fперемикач, щоб сказати ssh використовувати його. створити файл конфігурації, наприклад, ~ / .ssh / config.sftp із вмістом

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

тоді дзвоніть sftp так

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

Наведений вище конфігурація обмежує використання альтернативного ключа (коли використовується цей конфігураційний файл) користувачеві RemoteUserName на remote.host.tld.

Погляньте на головну сторінку ssh_confg для використання альтернативного файлу конфігурації


Велике спасибі за вашу допомогу! Ваше рішення пропонує чисту альтернативу аргументам командного рядка. Поки що я вважаю за краще передавати всі аргументи через командний рядок, оскільки я вже використовую -oPort = ALT_PORT.
Аді Ройбан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.