数日前にオペレーティング システムを Windows から Fedora に変更しました。つまり、Linux に関してはまったくの初心者です。
私の基本的な目標は、起動時にリモートドライブ(クラウドドライブ)を追加して使用できるようにすることです。 を使用して起動時に実行されるbashスクリプトを作成しようとしましたsftp
。次のコードを見つけました。
sshfs [email protected]:/targetpath ~/mountdir
私の問題はこれはルート権限では機能しますが、ユーザー権限では機能しません通常の権限で実行するとエラーが発生しますread: Connection reset by peer
。起動時にこれを実行したいので、ルート権限は使いたくありません。
また、ユーザー名とパスワードを保存する解決策を探しましたが、毎回入力しなくても済むような方法はまだ見つかっていません。
背景
フスタブ: 最初はたくさん Google 検索してfstab
ファイルにたどり着きました。丸一日かけて、システムの起動時にインターネット接続がなかったため、ターゲット ディスクを含めることができず、結局システムを壊してしまいました (少なくとも、それが起こっていたことだと思っています)。
スクリプト (WebDAV、sftp): その後、WebDAVを使ってみました
mount -t davfs2 https://webdav.example.com ~/mountdir
しかし、これもルート権限でのみ機能します (エラー: mount: only "root" can do that
)。 次のステップは、より適切に機能すると思われる sftp を使用することでした。 しかし、その後、上記のエラーが発生しました (エラー: read: Connection reset by peer
)。
十分なディスク容量がないため、ファイルをローカルに保存したくありません。
申し訳ありませんが、これは愚かな、または非常に基本的な質問ですが、先に進む方法が見つかりません。ご協力ありがとうございます。
答え1
決してスクリプトを root として実行しないでください。スクリプトを root として実行する理由をいくつか考えることができますが、一般的には、それは良い考えではありません。sshfs
また、動作するために root は必要ありません。 :)
これにより、パスワードを使用してリモート ssh ファイルシステムをマウントできるようになりますsshfs
(パスワードの代わりに証明書を使用できるとさらに良いでしょう)。
echo <mypassword> | sshfs <myuser>@<site.tld>:/ ~/<myfolder> -o workaround=rename -o password_stdin
<mypassword>
、、<myuser>
および<site.tld>
を置き換えます<myfolder>
。
例:
echo 4ghNZGpk182q8SvY0kw0 | sshfs [email protected]:/ ~/diblo -o workaround=rename -o password_stdin
注記:マウント フォルダーが~/<myfolder>
存在することを確認するか、作成します (スクリプトを実行する Linux ユーザーからフォルダーを作成することを忘れないでください)。
mkdir -p ~/<myfolder>
交換する<myfolder>
。