ssh ProxyCommand

The ssh ProxyCommand option is just really insanely useful.The reason I want to use it is that it makes it easy to tunnel ssh through a firewall. So for example you have a machineon your corporate network that is is sitting behind a firewall,but you have a login to the firewall. Now of course you could justdo:

laptop$ ssh gateway
gateway$ ssh internal
internal$

or something like:

laptop$ ssh -t gateway ssh internal
internal$

But that really doesn't work very well if you use scp or sftpor some other service like revision control that runs on top of it.This is where you can use ProxyCommand option to make your life easier.Basically you want to put something like this into you .ssh/config:

Host internal
        ProxyCommand ssh gw nc -w 1 internal 22

For this to work you will need netcat (nc) installed on thegw, but that generally isn't too much of a problem. Now you can transparently ssh, scp or whatever to internal, and ssh deals with it.

Now of course if you can't get into the network full stop, you need some reverse tunneling tricks and some other host on the interwebwhich you can use to tunnel through. So something like:

ssh -f -nNT -R 1100:localhost:22 somehost

Will setup a remote tunnel, which basically means if you connect toport 1100, it will be forwarded to port 22 on the machine on which youran ssh -R. Unfortunately unless you have full controlover the host you are creating the reverse tunnel too, you will findthat port 1100, will only be bound to localhost, which means you will probably still need to use the trick mentioned above to get seemlessaccess to it.


  • Like totally awesome page, dude!

    One tiny correction: "gw" in your config example should be "gateway"

  • Thanks for pointing that out, not sure how I messed that up.

Visual Studio Code (VSCode) 是一个强大的代码编辑器,支持多种语言和平台,并且可以通过扩展功能来增强其功能,包括使用 SSH 远程连接到服务器进行开发。配置 VSCode 的 SSH 让你可以直接在本地编辑并在远程服务器上运行代码。以下是基本的步骤: 1. **安装**: - 打开 VSCode,确保已经安装了 `Remote Development` 插件。如果没有,可以在扩展市场搜索并安装 "Remote - SSH"。 2. **设置SSH密钥**: - 如果你还没有 SSH 公钥对,可以在终端或命令提示符中生成一对(通常使用 `ssh-keygen` 命令)。 - 将公钥(默认为 `.ssh/id_rsa.pub`)的内容添加到远程服务器的 `.ssh/authorized_keys` 文件中,或者使用 `ssh-copy-id` 命令自动添加。 3. **配置SSH配置文件**: - 在你的本地电脑上,打开 VSCode,按 `Ctrl+Shift+P` 或者点击左下角的活动栏搜索,输入 "Remote-SSH: Edit Configuration File",选择相应的配置文件(通常是 `~/.ssh/config` 或者 `c:\Users\yourname\.ssh\config`)。 4. **添加配置项**: - 在配置文件中,添加一个新的 SSH 会话,例如: ``` Host your-remote-server HostName your.remote.server.address User your-username Port 22 IdentityFile ~/.ssh/id_rsa # 你的私钥路径 # 如果有密码,可以设置PasswordAuthentication yes # 如果有代理,可以设置ProxyCommand ``` 5. **连接到服务器**: - 保存配置后,你可以通过 Remote-Explorer 视图(`Ctrl+Shift+K, Ctrl+O`)或终端(`Terminal` > `New Terminal`,然后输入 `code your-remote-server`)来连接到远程服务器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值