web-dev-qa-db-ja.com

sftpで1つのライナーを使用して、同じ行にパスワードでログインするにはどうすればよいですか?

Sftpを使用してパスワードをその行に入力するオプションはありますか?

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ 

このような

linux~ $ sftp [email protected]:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 
20
Daniel

コマンドラインにパスワードを含めることは、ps/topを実行できる他のユーザーに表示され、シェルの履歴に保存される可能性があるため、セキュリティリスクと見なされます。

可能であれば、鍵ベースの認証をセットアップする方がはるかに良いでしょう。

また、sftpでそれが可能になるとは思いません。安全な転送に使用するためのものです。本当にこのようなことをする必要があり、他に選択肢がない場合は、おそらく expect を使用した自動化を検討する必要があります。

14
Zoredache

他の人が述べたように、コマンドラインパスワードは最後の手段であるべきです。

ただし、他に何もできない場合。 sshパスに行くことができます

sshpass -p <password> sftp user@Host
36
Yogesh Nachnani

しないでください-自動ログイン用にSSH公開鍵認証をセットアップします。

6
MikeyB

Perlを使用するだけで、Rubyまたはpythonあなたがやろうとしていることをスクリプトで記述します。Rubyの場合は、 net-sftp APIドキュメントから取得):

require 'net/sftp'

Net::SFTP.start('Host', 'username', :password => 'password') do |sftp|

  # upload a file or directory to the remote Host

  sftp.upload!("/path/to/local", "/path/to/remote")

end

詳細情報 http://net-ssh.rubyforge.org/sftp/v2/api/index.html

5
monomyth

他の回答が述べたように、公開鍵認証を使用します。 IBM developerWorks series は、少し古くはありますが、知りたいことすべてを説明している素晴らしいもの、およびキーチェーンなどの便利な補足ツールがあります。

3
rvf

FTPクライアントの数と同じくらい多くの答えがあると思います。 SFTPサーバーは、ユーザーとパスワードが保護されるように、暗号化が確立されるまで認証情報を受け入れません。

FileZilla クライアントは、ユーザーとパスワードをコマンドラインで渡すことができると思います。ドキュメントを参照してください here 。 FileZillaプロジェクトの評判を考えると、安全に動作することを期待しています。

1
tomjedrz

コマンドラインコマンドでパスワードが表示されることを気にしない検索者向け:

sftp userid:password@remoteHostは、sftp connectコマンドにパスワードを含める方法です。

更新:これは正しくないことが判明しました...コメントを参照してください

1
ashnazg