app*_*ver 2 networking bash ssh ssh-tunneling
第一个 ssh 命令是在我的计算机上完成的,我输入密钥密码,然后在登录服务器时输入第二个 ssh 命令。
ssh -i cloudkey -L 6000:localhost:6001 admin@54.152.188.55 -p 9000
#i get prompted for a password to use the key
ssh -D 6001 -p 6666 localhost -l dancloud
#i get prompted for a password associated with user dancloud
Run Code Online (Sandbox Code Playgroud)
./login.sh
硬编码到脚本中的密码来运行所有这些代码,并达到相同的最终结果。第一种可能性是显而易见的(注意-t
开关):
ssh -t -i cloudkey -L 6000:localhost:6001 admin@54.152.188.55 -p 9000 \
"ssh -D 6001 -p 6666 localhost -l dancloud"
Run Code Online (Sandbox Code Playgroud)
乍一看ProxyCommand
比较复杂,但从概念上讲你只需要一次转发(netcat
不再建议版本,使用-W
switch 更优雅):
Host proxy
Hostname 54.152.188.55
User admin
IdentityFile cloudkey
Host target
Hostname localhost
Port 6666
User dancloud
DynamicForward 6000
ProxyCommand ssh -W %h:%p proxy
Run Code Online (Sandbox Code Playgroud)
然后只需使用即可连接ssh target
(请参阅...现在您甚至不需要 bash 脚本:))。
说明:第二个ssh
也是从您的计算机运行,因此动态转发套接字(SOCKS 代理)是直接在您的计算机上创建的。
关于密码,这不是可取的(密码应该是秘密的),但它可能sshpass
在适当的前面工作ssh
。
手册页将开关ssh
解释-W
为:
-W
host
:port
请求通过安全通道将客户端上的标准输入和输出转发到端口上的主机。意味着
-N
、-T
、ExitOnForwardFailure
和ClearAllForwardings
。仅适用于协议版本 2。
与 结合使用ProxyCommand
,它连接到所请求的内容hostname
,然后为您提供netcat
(将标准 IO 连接到host
:port
对(参数)的基本嵌入式版本。
归档时间: |
|
查看次数: |
1699 次 |
最近记录: |