Infelizmente, isso não é possível com -o
. A lista de ssh
opções suportadas por sshfs
pode ser encontrada na fonte código :
static const char *ssh_opts[] = {
"AddressFamily",
"BatchMode",
"BindAddress",
"ChallengeResponseAuthentication",
"CheckHostIP",
"Cipher",
"Ciphers",
"Compression",
"CompressionLevel",
"ConnectionAttempts",
"ConnectTimeout",
"ControlMaster",
"ControlPath",
"GlobalKnownHostsFile",
"GSSAPIAuthentication",
"GSSAPIDelegateCredentials",
"HostbasedAuthentication",
"HostKeyAlgorithms",
"HostKeyAlias",
"HostName",
"IdentitiesOnly",
"IdentityFile",
"KbdInteractiveAuthentication",
"KbdInteractiveDevices",
"LocalCommand",
"LogLevel",
"MACs",
"NoHostAuthenticationForLocalhost",
"NumberOfPasswordPrompts",
"PasswordAuthentication",
"Port",
"PreferredAuthentications",
"ProxyCommand",
"PubkeyAuthentication",
"RekeyLimit",
"RhostsRSAAuthentication",
"RSAAuthentication",
"ServerAliveCountMax",
"ServerAliveInterval",
"SmartcardDevice",
"StrictHostKeyChecking",
"TCPKeepAlive",
"UsePrivilegedPort",
"UserKnownHostsFile",
"VerifyHostKeyDNS",
NULL,
};
Se fosse suportado, a sintaxe seria sshfs -o 'LocalForward=....'
Além disso, sshfs
passa a opção -oClearAllForwardings=yes
, por isso mesmo o encaminhamento definido em ~/.ssh/config
não é honrado.
Como sshfs
suporta passar um ssh_command
e permite argumentos adicionais, o que você pode fazer é:
CODE='
for i do
[ "$i" = -oClearAllForwardings=yes ] &&
i="-oLocalForward=127.0.0.5:3306 127.0.0.1:3306"
set -- "$@" "$i"
shift
done
exec ssh "$@"
' sshfs -o ssh_command='/bin/sh -c eval\ "$CODE" sh' user@host:/path mnt