如何将openssh sftp命令与从命令行指定的RSA / DSA密钥一起使用


35

Openssh ssh和scp命令提供了一个-i命令行选项,用于指定用于身份验证的RSA / DSA密钥的路径。

在查看sftp手册页时,我找不到找到指定RSA / DSA密钥的方法。

我正在寻找一种启动sftp会话的方法,该会话将使用指定的RSA / DSA密钥,而不是〜/ .ssh / id_ {dsa,rsa}密钥。

我在Linux上尝试过OpenSSH sftp客户端...但是在其他平台上应该具有相同的选项。


2
请指定您在哪个平台上使用哪个sftp客户端。
2011年

Answers:


40

一种可能的选择是使用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选项,这大概是OP询问问题的原因。
user9517支持GoFundMonica

在我的Linux主机下工作,但在我的Mac笔记本电脑下工作-i选项似乎不存在。
2011年

我的Ubuntu和CentOS主机没有用于sftp的-i开关
user9517支持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 | 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:而且我的[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-安全文件传输程序概要sftp [- 1Cv] [-B缓冲区大小] [-b批处理文件] [-F ssh_config] [-o ssh_option] [-P sftp_server_path] [-R num_requests] [-S程序] [-s子系统| sftp_server]主机sftp [[user @] host [:file [file]]]
user9517支持GoFundMonica11年

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。
2011年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.