J. *_*son 6 ssh file-transfer alias
我经常通过 SSH 连接到集群节点进行工作,并且在处理后想要将几个结果拉回我的本地机器进行分析。通常,为此我使用本地 shell 从服务器 scp,但这需要大量的路径操作。我更喜欢使用像交互式 FTP 这样的语法,并且只是将文件从服务器“拉”到我的本地密码。
另一种可能的解决方案可能是通过某种方式将我的客户端计算机自动设置为 ssh 别名,以便类似
scp results home:~/results
Run Code Online (Sandbox Code Playgroud)
会按预期工作。
有没有什么晦涩的 SSH 技巧可以为我做到这一点?
从grawity的答案开始,配置文件中的完整解决方案类似于
本地 .ssh/配置:
Host ex
HostName ssh.example.com
RemoteForward 10101 localhost:22
Run Code Online (Sandbox Code Playgroud)
ssh.example.com .ssh/配置:
Host home
HostName localhost
Port 10101
Run Code Online (Sandbox Code Playgroud)
这让我可以执行完全一样的命令
scp results home:
Run Code Online (Sandbox Code Playgroud)
将文件结果传输到我的家用机器上。
小智 6
你试过 sshfs 吗?这很容易
> sshfs hostname: mountpoint
Run Code Online (Sandbox Code Playgroud)
和
fusermount -u mountpoint
Run Code Online (Sandbox Code Playgroud)
然后你可以使用所有经典和基本的文件操作命令。
http://en.wikipedia.org/wiki/SSHFS
http://fuse.sourceforge.net/sshfs.html
我更喜欢使用像交互式 FTP 这样的语法,并且只是将文件从服务器“拉”到我的本地密码。
使用sftp
.
(提示:如果您不能或不想打开一个新窗口,您可以按Enter、~、暂停 SSH 连接CtrlZ,传输文件,然后使用 恢复 SSH fg
。)
另一种可能的解决方案可能是通过某种方式将我的客户端计算机自动设置为 ssh 别名
有几种方法。
静态别名ssh
和scp
-添加到您的~/.ssh/config
:
Host home
# If you don't have a domain name, check out DynDNS...
# ...or just use your IP address.
Hostname homepc.somedomain.tld
# If necessary, uncomment:
#User john
#Port 1234
Run Code Online (Sandbox Code Playgroud)
用:
scp foo home:
Run Code Online (Sandbox Code Playgroud)
(如果您没有在 之后提供路径:
,则该文件将转到您的主目录。)
使用SSH_CLIENT
环境变量。
export client=${SSH_CLIENT%% *}
if [[ $client == *:* ]]; then
client="[$client]"
fi
Run Code Online (Sandbox Code Playgroud)
把在~/.profile
或~/.bash_profile
或任何你想要的,然后使用$client
,当你需要自己的地址。
scp foo "$client:"
Run Code Online (Sandbox Code Playgroud)混合两者。
~/.ssh/config
:
Host client
ProxyCommand ~/bin/reverse-connect %p
Run Code Online (Sandbox Code Playgroud)
~/bin/reverse-connect
:
#!/bin/sh
if [[ $SSH_CLIENT ]]; then
client=${SSH_CLIENT%% *}
else
echo "I don't know your address." >&2
exit 1
fi
if [[ $client == *:* ]]; then
client="[$client]"
fi
port=${1:-22}
exec socat - "tcp:$client:$port"
Run Code Online (Sandbox Code Playgroud)
用:
scp foo client:
Run Code Online (Sandbox Code Playgroud) 归档时间: |
|
查看次数: |
600 次 |
最近记录: |