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
您可以简单地使用-i
sftp 或 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配置使用备用配置文件