aboutsummaryrefslogtreecommitdiff
path: root/shellrc-desktop.d/ssh
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2022-04-04 15:54:26 +0200
committerKarel Kočí <cynerd@email.cz>2022-04-04 17:54:18 +0200
commit7e8cc7201949ad75daca5520c57479229711ed31 (patch)
tree544b15a25f53ba4923eff7e813732ab8ba81a996 /shellrc-desktop.d/ssh
parent0cf542815d11b09e411a00267c89180e28623991 (diff)
downloadshellrc-7e8cc7201949ad75daca5520c57479229711ed31.tar.gz
shellrc-7e8cc7201949ad75daca5520c57479229711ed31.tar.bz2
shellrc-7e8cc7201949ad75daca5520c57479229711ed31.zip
Add flake.nix
Diffstat (limited to 'shellrc-desktop.d/ssh')
-rw-r--r--shellrc-desktop.d/ssh19
1 files changed, 19 insertions, 0 deletions
diff --git a/shellrc-desktop.d/ssh b/shellrc-desktop.d/ssh
new file mode 100644
index 0000000..7a1b71f
--- /dev/null
+++ b/shellrc-desktop.d/ssh
@@ -0,0 +1,19 @@
+# vim: ft=sh:
+# These are general ssh helpers that are most likely not usable on server side
+# anyway thus they are deployed on desktop only.
+
+# SSHFS in client mode. In other words it is reverse sshfs mount.
+sshcfs() {
+ local target="$1"
+ local local_dir="$2"
+ local remote_dir="$3"
+ shift 3
+ [[ "$local_dir" = /* ]] || local_dir="$PWD/$local_dir"
+
+ ssh "$@" "$target" mkdir -p "$remote_dir"
+ dpipe \
+ /usr/lib64/misc/sftp-server \
+ = \
+ ssh "$@" "$target" sshfs -o idmap=user -o passive -o allow_other \
+ ":$local_dir" "$remote_dir"
+}