gvfs-mount 自動パスワード

gvfs-mount 自動パスワード

gvfsマウントへのショートカットを作成したい(シェルからマウントすることを好む)。これを行うには、パスワードを入力しftp://て接続する必要がないことが非常に必要です/便利です。sftp://現在私が知っている唯一の方法は次のとおりです。

echo 12345 | gvfs-mount sftp://[email protected]/

ファイルに対する権限700(またはファイルに対する権限100)を付与することはできますが、これが安全かどうかはわかりません。アイテムより.netrc悪いですか?わかりました。ただし、ほとんどのサーバーではシェルssh-copy-idにアクセスできません。sftp

私のアプローチにはより良い(標準的な)選択肢がありますか?パスワードを保存するときに何をしますかnautiluscaja

答え1

私もあなたと同じように、コマンドラインからファイルシステムをマウント/マウント解除するのが好きです。

標準入力オプションについて

かなり安全かどうかはよくわかりません。 .netrcプロジェクトより悪いですか?

多くのシステムでは、プロセス名とコマンドラインパラメータがすべてのユーザーに表示されることに注意してください。たとえば、Linuxでは、grep -a . /proc/*/cmdlineすべてを見るにはこれを行います。

つまり、bashを含む一部のシェルでは、echoこれは組み込みコマンドであるため、プロセスは開始されません。

だから私が知っている限り比較してはいけません.netrc。それにもかかわらず、ファイル権限を再確認してください。

SFTP

gvfs-mount sftp://somehost/somepath作業にパスワードは必要ありません。 (今テストに成功しました。)

推奨される解決策は、パスワードをどこにでも保存するのではなく、キーベースの認証を使用することです。

例えば認証 - パスワードのないSSHログインを設定するには? - Ubuntuに尋ねるそしてSSHキーを別のコンピュータにコピーする最も簡単な方法は何ですか? - Ubuntuに尋ねる(Ubuntu用に書かれていますが、他のUnicesでも同じように動作します。)

ssh-copy-idについて知っていますが、ほとんどのSFTPサーバーのシェルにアクセスできません。

ssh-copy-idは便利なショートカットです。キーベース認証を設定するためにシェルアクセスは必要ありませんが、ホームディレクトリへのアクセスは必要です。

~/.ssh/SFTPを介して対話的にファイルにアクセスできる場合は、管理者がこれを防ぐために注意しない限り、SFTPを設定できますが、~/.ssh/authorized_keysそうすると怒りを引き起こす可能性があります。実際、管理者は次のようにする必要があります。奨励するユーザーがキーベースの認証を設定します。どのポリシーがあるかを確認してください。

キーのみを設定する必要がある場合は、キーをコピーしてください。人々上記の(プライベート)キーファイルを(おそらく)名前付きディレクトリのリモート~/.ssh/id_rsa.pubファイルに作成し、権限を設定します(あなたのための読み取り/書き込み、他の人には影響しません)。.sshauthorized_keys600

ファイル転送プロトコル

FTP URLに関する従来の答えは、~/.netrc説明されているようにaを使用することです。https://askubuntu.com/a/359802/68124

ああ、を含む多くのFTPクライアント(以前と新規)ではうまく動作しますがcurlftpfs(少なくともUbuntu 14.04では)gvfsmount無視します。

curlftpfsあなたのユースケースに適している可能性があります。主な違いは、gvfs-mountマウントポイントを計算する代わりにマウントポイントを選択することです。

curlftpfs ftp://host/ ~/mymountpoint

SFTPを再利用する

このオプションが好きな場合は、curlftpfsSFTP URLを検討してください。

sshfs host:/some/remote/path ~/myothermountpoint

sshfsにシェルアクセスが必要かどうか疑問に思うなら、Wikipediaは次のように言います。クライアントは、SFTP(SSHファイル転送プロトコル)を介してリモートファイルシステムと対話します。

最後の言葉:明示的なマウントポイントが必要なツールの場合は、まず正しいパスに空のディレクトリを作成することを検討してください。何度も試したりオプションを変更したりする場合は、再インストールfusermount -u somepathする前に削除する必要があります。

答え2

同様の方法を使用して、expectすべての接続に資格情報を提供できます。非常に安全ではありませんが、お客様のニーズに適しています。

#!/usr/local/bin/expect --
set timeout -1
spawn gvfs-mount {args}
expect "User"
send "joe\n"
expect "Password:"
send "xxxxx\n"
expect eof

源泉: gvfs-mountはユーザー名とパスワードを指定します

関連情報