如何使用 openssh sftp 命令并从命令行指定 RSA/DSA 密钥

如何使用 openssh sftp 命令并从命令行指定 RSA/DSA 密钥

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

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

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

我尝试在 Linux 上使用 OpenSSH sftp 客户端……但它在其他平台上应该有相同的选项。

答案1

一个可能的选择是使用sftp -oIdentityFile=/path/to/private/keyfile。需要更多信息来判断它是否适合您。似乎在 Mac/Linux 下有效。

答案2

您可以简单地使用-isftp 或 ssh 命令的参数。

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

如果 -i 选项不可用,您可以使用 -o 选项,语法如下:

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

答案3

您可以为连接创建一个备用配置文件,并使用开关-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配置使用备用配置文件

相关内容