SSH 命令
ssh 端口转发,agent转发,非常实用的功能,前者可用于在目标主机没有开放端口时通过本机访问目标主机端口,后者可以通过中间主机进行ssh,或scp等操作,还有ssh config文件的简单介绍
SSH port forward
在本机无法访问10.1.1.236
的8161
端口,但是10.1.1.122
可以访问其端口的情况下,通过本机8080
端口访问10.1.1.236
的8161
端口
ssh -l timothy 10.1.1.122 -L 8080:10.1.1.236:8161
timothy
用户名10.1.1.122
目标主机地址,或用于中间跳转的主机地址8080
本机端口10.1.1.236
目标主机地址8161
目标主机端口
SSH agent forward
需要多次ssh登陆操作,例如,当前已经通过ssh登陆到10.1.1.166
,然后需要通过scp拷贝文件至10.1.1.225
- 首先,检查 ssh agent
ssh-add -L
-
如果第一步显示
The agent has no identities.
则需要执行ssh-add -k
这一步可能需要设置密码
另一种方式,可以在
~/.ssh/config
文件中设置ForwardAgent yes
, 如果使用此方式,则在ssh
时必须使用config文件中Host
指定的路径,具体操作请看下一章节 -
在登陆到
10.1.1.166
时,添加-A
参数可以使用
-v
参数启动debug模式检查这句话debug1: Requesting authentication agent forwarding.
此时就可以在10.1.1.166
上scp文件或ssh登陆至10.1.1.225
, 请注意不要在10.1.1.166
上切换用户,否则ssh agent forward会失效。
SSH config 文件
简单例子:
Host testserver
HostName 10.1.1.122
ForwardAgent yes
User timothy
使用:
ssh testserver
注意如果使用配置文件启动ssh agent forward,则必须使用Host指定的路径,如果使用
ssh timothy@10.1.1.122
则不会自动开启ssh agent forward
SSH use proxy
config proxy, if your proxy on local system, and using WSL2, make sure you proxy bind on 0.0.0.0
export HTTP_PROXY="http://172.27.176.1:1087"