如何在没有期望、sshpass 或任何第 3 方 SFTP 客户端的情况下在 shell 脚本中为 SFTP 命令传递密码
How to pass password for an SFTP command in shell script without expect, sshpass or any 3rd party SFTP client
我正在从 UNIX 服务器连接到第三方服务器(客户端的 EFT)。
EFT 仅支持双重身份验证。
所以客户已经向我们提供了用户名和密码,我们已经将 public 密钥分享给他们。
我的 shell 脚本必须从第三方推送和拉取文件。
我的服务器没有expect
、lftp
、curl
、sshpass
,所以也安装不了。
如何在 shell 脚本中为 sftp
命令传递密码以连接到远程服务器?
现在我正在手动输入密码以进行文件传输,这是有效的。
但是需要自动化这个。
请指教
如果你真的需要密码认证(除了 public 密钥认证),你不能使用 vanilla OpenSSH ssh
。它是有意构建的不允许自动密码验证。
- 要么您需要使用
expect
和 sshpass
等工具破解 ssh
的密码输入:
Automatically enter SSH password with script
How to run the sftp command with a password from Bash script?
(看来你知道这个);
- 或者换个SFTP客户端(好像有none但是安装不了);
- 这基本上让你实现了一些东西。要么你必须实现
expect
/sshpass
等效。或者使用您服务器上可用的您最喜欢的编程语言来实现 SFTP:Python/Perl/Ruby/PHP/C/C++。所有这些都有 SFTP 库。
我正在从 UNIX 服务器连接到第三方服务器(客户端的 EFT)。 EFT 仅支持双重身份验证。
所以客户已经向我们提供了用户名和密码,我们已经将 public 密钥分享给他们。
我的 shell 脚本必须从第三方推送和拉取文件。
我的服务器没有expect
、lftp
、curl
、sshpass
,所以也安装不了。
如何在 shell 脚本中为 sftp
命令传递密码以连接到远程服务器?
现在我正在手动输入密码以进行文件传输,这是有效的。
但是需要自动化这个。
请指教
如果你真的需要密码认证(除了 public 密钥认证),你不能使用 vanilla OpenSSH ssh
。它是有意构建的不允许自动密码验证。
- 要么您需要使用
expect
和sshpass
等工具破解ssh
的密码输入:
Automatically enter SSH password with script
How to run the sftp command with a password from Bash script?
(看来你知道这个); - 或者换个SFTP客户端(好像有none但是安装不了);
- 这基本上让你实现了一些东西。要么你必须实现
expect
/sshpass
等效。或者使用您服务器上可用的您最喜欢的编程语言来实现 SFTP:Python/Perl/Ruby/PHP/C/C++。所有这些都有 SFTP 库。