ubuntu

Ubuntu SSH如何配置SSH代理

小樊
72
2025-07-19 12:17:52
栏目: 智能运维

在Ubuntu系统中配置SSH代理,通常是为了通过一个中间服务器(也称为跳板机或代理服务器)来访问其他服务器。以下是配置SSH代理的步骤:

方法一:使用sshuttle

sshuttle是一个简单的透明代理工具,可以让你通过SSH隧道访问内网。

  1. 安装sshuttle

    sudo apt update
    sudo apt install sshuttle
    
  2. 配置并启动sshuttle: 假设你的代理服务器地址是proxy.example.com,用户名是user,你可以这样启动sshuttle

    sshuttle -r user@proxy.example.com 0.0.0.0/0
    

    这条命令的意思是通过proxy.example.com代理访问所有网络。

  3. 持久化配置: 如果你想让sshuttle在系统启动时自动运行,可以将其添加到systemd服务中。

    创建一个新的服务文件:

    sudo nano /etc/systemd/system/sshuttle.service
    

    添加以下内容:

    [Unit]
    Description=SSH Tunnel Service
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/sshuttle -r user@proxy.example.com 0.0.0.0/0
    Restart=always
    User=your_username
    
    [Install]
    WantedBy=multi-user.target
    

    启用并启动服务:

    sudo systemctl enable sshuttle
    sudo systemctl start sshuttle
    

方法二:使用ssh配置文件

如果你更喜欢使用传统的SSH配置文件来管理多个代理服务器,可以按照以下步骤操作。

  1. 编辑SSH配置文件: 打开或创建~/.ssh/config文件:

    nano ~/.ssh/config
    
  2. 添加代理服务器配置: 假设你的代理服务器地址是proxy.example.com,用户名是user,你可以这样配置:

    Host proxy
        HostName proxy.example.com
        User user
        Port 22
    
    Host target_server
        HostName target.example.com
        User your_username
        ProxyCommand ssh -W %h:%p proxy
    

    这条配置的意思是,当你尝试连接target_server时,SSH会先连接到proxy服务器,然后通过proxy服务器连接到target_server

  3. 使用配置连接目标服务器: 现在你可以直接使用以下命令连接到目标服务器:

    ssh target_server
    

方法三:使用autossh

autossh是一个可以自动重连的SSH客户端,适合用于保持长连接的代理服务器。

  1. 安装autossh

    sudo apt update
    sudo apt install autossh
    
  2. 配置并启动autossh: 假设你的代理服务器地址是proxy.example.com,用户名是user,你可以这样启动autossh

    autossh -M 0 -o "ProxyCommand ssh -W %h:%p user@proxy.example.com" your_username@target.example.com
    

    这条命令的意思是通过proxy.example.com代理连接到target.example.com,并且-M 0选项禁用了autossh的监控端口。

通过以上方法,你可以在Ubuntu系统中配置SSH代理,以便更方便地访问目标服务器。选择适合你需求的方法进行配置即可。

0
看了该问题的人还看了