如果你有一個通過sshfs映射的網絡驅動器,有沒有辦法通過ssh自動登錄,每當改變到該目錄?當移動到映射的sshfs時自動SSH會話
$USER:$LOCALHOST:~: sshfs $USER:$REMOTEHOST /Volumes/dev0
$USER:$LOCALHOST:~: cd /Volumes/dev0
$USER:$REMOTEHOST:~
如果你有一個通過sshfs映射的網絡驅動器,有沒有辦法通過ssh自動登錄,每當改變到該目錄?當移動到映射的sshfs時自動SSH會話
$USER:$LOCALHOST:~: sshfs $USER:$REMOTEHOST /Volumes/dev0
$USER:$LOCALHOST:~: cd /Volumes/dev0
$USER:$REMOTEHOST:~
Thomas Jansson provides a guide on integrating sshfs
with autofs
。我在這裏總結一下他的指導,所以這個答案仍然是值得的東西,如果他的網站曾經下線:
創建/etc/auto.master
:
/mnt/sshfs /etc/auto.sshfs uid=1000,gid=1000,--timeout=30,--ghost
確保您uid
和gid
匹配您的用戶ID和全局唯一標識符/etc/passwd
或用於提供系統帳戶的任何內容。
現在添加幾行/etc/auto.sshfs
,每個所需的文件系統之一,在下面的表格:
bar -fstype=fuse,rw,nodev,nonempty,noatime,allow_other,max_read=65536 :sshfs\#[email protected]\:
一定要改變[email protected]
到任何用戶賬號和主機名你要使用。將領導bar
更改爲任何您想要命名的目錄。當cd /mnt/sshfs/bar
時,autofs
會自動爲您安裝FUSE文件系統。當然,使用SSH密鑰和ssh-agent(1)
將使這更令人愉快。
更新
...創建字面上你登錄到其他機器上的一個目錄。
嘿,這是非常聰明的想法。你可以寫一個shell function,檢查你想要的目錄名到cd
,併爲你啓動一個新的ssh
。如果目錄名稱匹配,也許你可以(ab)使用PROMPT_COMMAND
變量到ssh
。要警告的是,要麼將減慢你的正常cd
或每提示顯示。
,我已經使用並享受另一種方法是一個小的小幫手腳本,~/bin/ssh-to
:
#!/bin/bash
hostname=`basename $0`
ssh $hostname $*
符號鏈接新的名字這個shell腳本:ln -s ssh-to sarnold.org
,然後你可以運行一個命令或登錄一個遠程站點而無需鍵入ssh
所有的時間:
sarnold.org python foo.py
任何機器您使用的符號鏈接並運行任何命令你給它的名稱,它會您登錄到。
嘿阿諾德,雖然這足以自動安裝FS並且非常棒(謝謝!),但我正在尋找一種方法來說,創建一個目錄,可以真正將您記錄到另一臺機器中。假設你需要在該機器上運行一個命令(可能是python bar/foo)。py)你需要打開第二個終端來管理它。 – 2012-01-06 00:49:24
它與編程有什麼關係? – 2011-12-22 06:32:54
嘿尤金,你是對的,我天真地在這裏添加這個問題,我認爲它更適合超級用戶。 (如果我錯了,那麼你會推薦將它移動到哪裏?)還有一種方法可以將它移動到超級用戶,而無需粘貼它(以及任何答案)。 – 2012-01-06 00:43:23