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


16

sftpを使用してパスワードを行に追加するオプションはありますか?

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ 

このような

linux~ $ sftp USERNAME@FTP.WEBSITE.COM:/DIRECTORY_TO_GO_TO/ -p PASSWORD? 

回答:


13

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

可能であれば、キーベースの認証を設定することをお勧めします。

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


興味深い点!
ダニエル

可能であれば、キーベースの認証を設定することをお勧めします。それは理にかなっています。
ネットランナー

このURLが壊れていると予想
アンドレペラッツィ

4
なぜ人々が解決策を提供しない答えを支持するのか理解できない。
itoctopus

33

他の人が述べたように、コマンドラインのパスワードは最後の手段でなければなりません。

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

sshpass -p <password> sftp user@host

2
これは大いに支持されるべきです。sshpassがあると本当に便利です。一部のプロバイダーでは、.sshフォルダーの作成が許可されておらず、scpも許可されていません。
NetSquirrel

2
いくつかのツールがあなたの背中を持っているのは良いことbrew search sshpassです。
オリバー

4
これは受け入れられた解決策でなければなりません。OPは、この特定のことを行う方法を尋ねました-セキュリティアドバイスのためではありません(意図的で正しいとはいえ)。
ebr

6

それをしないでください-自動ログインのためにSSH公開鍵認証をセットアップしてください。


sftpはscpと同じことができますか?
ダニエル

1
@Danielは、sftpとscpの両方がSSHに基づいて構築されているため、キーベースの認証が可能です。
ゾレダチェ

5

あなたがやろうとしていることをスクリプト化するには、perl、ruby、またはpythonを使用してください。ルビーの場合、それはただです(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


paramikoは純粋なpython(余分なライブラリなし)であり、本当にうまく動作します
-qwertzguy

3

他の答えが述べているように、公開鍵認証を使用します。少し古くなっていますが、それについて知りたいすべてのことを説明するすばらしいIBM developerWorksシリーズと、キーチェーンなどの便利な補助ツールがあります。


2

パスワードがコマンドラインコマンドで表示されることを気にしないサーチャーの場合:

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

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


OpenSSHのv5.3p1とv4.3p2、両方のRed Hat Enterprise上の...
ashnazg

1
これは間違っていることが判明しました... PHPとそのssh2拡張機能が実際のスタンドアロン認証を行うために私のコードで以前に使用されていたため、この方法は私にとってうまくいくようでした...そしてsftpコマンドは後で実行されていました。構文が成功したように見えたのは、この後者の部分でした。
ashnazg

1
ホスト名ユーザーを解決できませんでした:そのようなホストは不明です。それは検討している「:」ユーザ名にFileZillaのCLIの場合とされていない
PサティシュPatro

1

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.