sshfs 経由でマップされたネットワーク ドライブがある場合、そのディレクトリに移動するたびに ssh 経由で自動的にログオンする方法はありますか?
$USER:$LOCALHOST:~: sshfs $USER:$REMOTEHOST /Volumes/dev0
$USER:$LOCALHOST:~: cd /Volumes/dev0
$USER:$REMOTEHOST:~
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/bar
、autofs
FUSE ファイルシステムが自動的にマウントされます。もちろん、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
シンボリックリンクの名前に使用したマシンにログインし、指定したコマンドを実行します。