명령 줄에서 지정된 RSA / DSA 키와 함께 openssh sftp 명령을 사용하는 방법


35

Openssh ssh 및 scp 명령 -i은 인증에 사용될 RSA / DSA 키의 경로를 지정 하는 명령 행 옵션을 제공했습니다.

sftp 매뉴얼 페이지를 보면 RSA / DSA 키를 지정하는 방법을 찾을 수 없었습니다.

~ / .ssh / id_ {dsa, rsa} 키가 아닌 지정된 RSA / DSA 키를 사용하는 sftp 세션을 시작하는 방법을 찾고 있습니다.

Linux에서 OpenSSH sftp 클라이언트를 시도했지만 다른 플랫폼에서도 동일한 옵션이 있어야합니다.


2
어떤 플랫폼에서 사용중인 sftp 클라이언트를 지정하십시오.
dmourati

답변:


40

하나의 가능한 옵션은을 사용하는 것 sftp -oIdentityFile=/path/to/private/keyfile입니다. 그것이 당신에게 도움이 될 것인지 더 많은 정보가 필요합니다. Mac / Linux에서 작동하는 것 같습니다.


11

-isftp 또는 ssh 명령에 인수를 사용할 수 있습니다 .

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

-i 옵션을 사용할 수없는 경우 -o 옵션을 다음과 같은 구문과 함께 사용할 수 있습니다.

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

4
sftp에는 -i 옵션이 없으므로 아마도 OP가 질문을하는 이유 일 것입니다.
user9517은 GoFundMonica 지원

-i 옵션이 존재하지 않는 Linux 호스트에서는 작동하지만 Mac 랩톱에서는 작동하지 않습니다.
dmourati

내 우분투 CentOS는 호스트가 SFTP를위한 -i 스위치가없는
user9517은 GoFundMonica 지원

내 CentOS 클라이언트는 다음을 수행합니다. [dmourati @ flexo ~] $ cat / etc / redhat-release CentOS 릴리스 5.6 (최종) [dmourati @ flexo ~] $ which ssh / usr / bin / ssh [dmourati @ flexo ~] $ which 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 | head SFTP (1) BSD 일반 명령 매뉴얼 SFTP (1) 이름 sftp-보안 파일 전송 프로그램 SYNOPSIS sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-c cipher] [-D sftp_server_path] [-F ssh_config ] [-i identity_file]
dmourati

1
@ dmourati : 그리고 내 ssh / usr / bin / ssh [iain @ centos ~] $하지 않습니다 [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) 이름 sftp-보안 파일 전송 프로그램 SYNOPSIS sftp [- 1Cv] [-B buffer_size] [-b 배치 파일] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S 프로그램] [-s 서브 시스템 | sftp_server] 호스트 SFTP를 [사용자 @] 호스트 [: 파일 [파일]]]
user9517 지원 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>

위의 구성은 대체 키 (이 구성 파일이 사용되는 경우)의 사용을 remote.host.tld의 사용자 RemoteUserName으로 제한합니다.

대체 구성 파일 사용법에 대해서는 ssh_confg 매뉴얼 페이지를 참조 하십시오.


당신의 도움을 주셔서 대단히 감사합니다! 솔루션은 명령 행 인수에 대한 확실한 대안을 제공합니다. 지금은 이미 -oPort = ALT_PORT를 사용하고 있으므로 명령 줄을 통해 모든 인수를 전달하는 것을 선호합니다.
Adi Roiban
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.