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、autofsFUSE ファイルシステムが自動的にマウントされます。もちろん、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
シンボリックリンクの名前に使用したマシンにログインし、指定したコマンドを実行します。