如果你有通过sshfs映射的网络驱动器,有没有办法在更改到该目录时通过ssh自动登录?
$USER:$LOCALHOST:~: sshfs $USER:$REMOTEHOST /Volumes/dev0
$USER:$LOCALHOST:~: cd /Volumes/dev0
$USER:$REMOTEHOST:~
答案 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
确保您的uid
和gid
与/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
它会将您登录到您用于符号链接名称的任何计算机上并运行您提供的任何命令。