0

sshfs 経由でマップされたネットワーク ドライブがある場合、そのディレクトリに移動するたびに ssh 経由で自動的にログオンする方法はありますか?

$USER:$LOCALHOST:~: sshfs $USER:$REMOTEHOST /Volumes/dev0
$USER:$LOCALHOST:~: cd /Volumes/dev0
$USER:$REMOTEHOST:~
4

1 に答える 1

1

Thomas Jansson が との統合に関するガイドを提供していsshfsますautofs。ここで彼のガイドを要約します。そのため、彼のサイトがオフラインになった場合でも、この回答は価値があります。

を作成します/etc/auto.master

/mnt/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost

あなたのユーザーIDとGUID、またはシステムアカウントを提供するために使用するものuidと一致していることを確認してください。gid/etc/passwd

/etc/auto.sshfs次の形式で、目的のファイルシステムごとに 1行を に追加します。

bar -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#tjansson@bar.com\:

tjansson@bar.com使用する予定のユーザー アカウントとホスト名に必ず変更してください。先頭barを、ディレクトリに付けたい名前に変更します。するとcd /mnt/sshfs/barautofsFUSE ファイルシステムが自動的にマウントされます。もちろん、SSH キーと を使用すると、ssh-agent(1)これがはるかに快適になります。

アップデート

...文字通り他のマシンにログインするディレクトリを作成します。

おお、それはかなり賢い考えだ。必要なディレクトリ名をチェックするシェル関数を作成してcd、新しいディレクトリを開始するsshこともできます。ディレクトリ名が一致する場合は、PROMPT_COMMAND変数をホストに(ab) 使用できます。どちらのアプローチでも、通常のプロンプト表示またはすべてのプロンプト表示遅くなるsshことに注意してください。cd

私が使用して楽しんだもう 1 つのアプローチは、小さな小さなヘルパー スクリプトです~/bin/ssh-to

#!/bin/bash
hostname=`basename $0`
ssh $hostname $*

新しい名前をこのシェル スクリプトにシンボリック リンクln -s ssh-to sarnold.orgすると、コマンドを実行したり、リモート サイトにログインしたりできますssh

sarnold.org python foo.py

シンボリックリンクの名前に使用したマシンにログインし、指定したコマンドを実行します。

于 2011-12-22T01:02:07.820 に答える