移动到映射的sshfs时自动ssh会话

时间:2011-12-22 00:50:40

标签: ssh sshfs

如果你有通过sshfs映射的网络驱动器,有没有办法在更改到该目录时通过ssh自动登录?

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

1 个答案:

答案 0 :(得分:1)

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

确保您的uidgid/etc/passwd中的用户ID和guid匹配,或与您用于提供系统帐户的任何内容匹配。

现在将行添加到/etc/auto.sshfs,每个所需的文件系统一个,格式如下:

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)会使这更加愉快。

<强>更新

  

...创建一个目录,直接将您登录到另一台计算机。

嘿,这是非常聪明的主意。您可以编写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

它会将您登录到您用于符号链接名称的任何计算机上并运行您提供的任何命令。