コマンドラインから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

回答:


41

1つの潜在的なオプションはを使用すること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を

Linuxホストでは動作しますが、-iオプションが存在しないMacラップトップでは動作しません。
-dmourati

私のUbuntuとCentOSのホストは、SFTPのために-iスイッチを持っていない
user9517はGoFundMonicaサポート

私のCentOSクライアントは:[dmourati @ flexo〜] $ cat / etc / redhat-release CentOS release 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-安全なファイル転送プログラム形式sftp [-1246Cpqrv] [-B buffer_size] [-b batchfile] [-c cipher] [-D sftp_server_path] [-F ssh_config ] [-i identity_file]
-dmourati

1
@dmourati:そして、私は[iain @ centos〜] $ which ssh / usr / bin / ssh [iain @ centos〜] $ which 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-安全なファイル転送プログラム形式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 @] host [:file [file]]]
user9517はGoFundMonicaをサポートします11年

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のmanページをご覧ください


手伝ってくれてありがとうございます!このソリューションは、コマンドライン引数に代わるクリーンな代替手段を提供します。とりあえず、-oPort = ALT_PORTを既に使用しているため、コマンドライン経由ですべての引数を渡すことを好みます。
アディロイバン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.