Linux FTPのユーザー名とパスワードでログインする


23

FTPですべて1行でログインするためのコマンドは何ですか?

ftp username:password@my.domain.com

言う:

ユーザー名に必要なパスワード:password


2
を使用man ftpして調べるか、多分ftp --help。それを忘れないでくださいftp別のユーティリティを意味するかもしれない....
バジーレStarynkevitch

2
ftp ftp://username:password@my.domain.com

1
また、特定のプロセスのコマンドラインは、システム上の他のすべてのユーザーに表示されることを覚えておく必要があります。したがって、コマンドラインの一部としてパスワードを指定することは、重大なセキュリティ問題になる可能性があります。

回答:


8
ftp -nv yourftpserver.com

その後user your_username またはuser anonymous


私には役に立たftp ftp://username:password@my.domain.comなかったので、この回答を投稿しました。

Usage: { ftp | pftp } [-46pinegvtd] [hostname]
   -4: use IPv4 addresses only
   -6: use IPv6, nothing else
   -p: enable passive mode (default for pftp)
   -i: turn off prompting during mget
   -n: inhibit auto-login
   -e: disable readline support, if present
   -g: disable filename globbing
   -v: verbose mode
   -t: enable packet tracing [nonfunctional]
   -d: enable debugging

2
インタラクティブな使用が必要なため、これはあまり役に立ちません。「ftp user @ yourserver」と入力することもできます。
-smaudet

3
これは質問に答えません
phil294

7
ftp ftp://username:password@my.domain.com

ftp --helpただし、非常に簡単に使用できます。


25
表示されるコマンドは「名前またはサービスが不明」を生成します。ftp -helpは、ftp:、// username:password @とは何も生成しません。
CWホールマンII 14

4
どのバージョンのLinuxを使用していますか?上記の構文を試すと、「名前またはサービスが不明です」というメッセージも表示されます。私はCentOSの6使用しています
ティムLudwinski

7
また、名前またはサービスが不明です
ケビンジョンソン

6
私にとってはうまくいきません、ubuntuリモートサーバー上の
fyi

6
また、ftp -help 役に立たないことがわかり、あなたが提案する形式はubuntu 16では機能しません。-
ヘンリー

3

セキュリティ上の目的で、.netrcを gpgなどと一緒に使用するのが最良のオプションです。

このための汎用スクリプトを作成しました。後でアップロードできますが、要約すると次のようになります。

gpg -c .netrc

または、オプションでコマンドラインにパスフレーズと出力先を指定します。

gpg --passphrase <secretphrase> -o .netrc.gpg -c .netrc

ここには示されていませんが、さらにgpgで非対称キー(セットアップされている場合)を使用して、これをさらに安全にすることができます。

その後、ログインする準備ができたら

gpg .netrc.gpg
# or
gpg --passphrase <secretphrase> -o .netrc .netrc.gpg
ftp yourservername
rm .netrc

.netrcの例:

machine google.com
login <username>
password <secretpassword>

実際に、ローカルハッシュとこれらのファイルの元のコピーを、.netrcファイルを使用するコンピューターとは別のコンピューターに保存し、.netrcのハッシュと実行するスクリプトを検証しますが、それは上記のとおりです。 OPの元の質問を超えています。


これは最良の答えですが、改善することもできます:(1)単一のコマンドライン内のユーザー資格情報は、シェル履歴=>セキュリティの問題に保存されます。(2).netrcはgpg =>セキュリティの問題もなく動作します。また、.netrcファイルに正しいアクセス許可があることを確認します。chmod 600 .netrc(3)復号化、ftp呼び出し、および復号化された.netrcの削除のラッパーとしてのシェル関数が役立つでしょう。すばらしい回答をありがとうございます!
数学

それでは、ユーザーはFTPパスワードの代わりにGPGパスフレーズを入力する必要がありますか?また、攻撃者が個人ファイルへの書き込みアクセス権を持っている場合、資格情報を使用するとすぐにそれを明らかにする方法がたくさんあります。そのシナリオでは、GPGは読み取り専用アクセス権を持つ攻撃者に対してのみ有効です。本当に珍しいのでしょうか?
コンラッド

1

netrcを使用します。コマンドラインでパスワードを指定するよりも優れています。


この答えは負のスコアに値しません(ただし、その方法の例はありません)。
ピーターモーテンセン

私は同意します-しかし、誰もこれを変更しませんでした(そして、私はそれをダウン票しませんでした)。
-smaudet

0

あなたが試すことができます

my_ftp() {
  ftp -i -n <<EOF
    open $HOST
    user "$USER" "$PASS"
    $@
EOF
}

その後、あなたはと呼び出すことができます my_ftp $'ls subfolder\nanothercommand'

このソリューションはインタラクティブではありませんが、私が理解できる最高のものです

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